Skip to content

Commit 79f1ff4

Browse files
committed
fix: auto-restart fcitx5 in ProcessMonitor constructor
- Kill existing fcitx5 processes for current user before starting - Start fcitx5 in detached mode during constructor Log: auto-restart fcitx5 in ProcessMonitor constructor pms: BUG-339241
1 parent f3ad31f commit 79f1ff4

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

debian/changelog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
deepin-fcitx5configtool-plugin (6.0.23) unstable; urgency=medium
2+
3+
* Non-maintainer upload.
4+
5+
-- wangyu <wangyu@uniontech.com> Sun, 04 Jan 2026 17:10:33 +0800
6+
17
deepin-fcitx5configtool-plugin (6.0.22) unstable; urgency=medium
28

39
* chore: Update compiler flags for security enhancements

src/fcitx5helper/processmonitor.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,24 @@ ProcessMonitor::ProcessMonitor(QObject *parent) : QObject(parent)
8686
{
8787
// qCDebug(procMon) << "Entering ProcessMonitor constructor";
8888
connect(&m_timer, &QTimer::timeout, this, &ProcessMonitor::checkFcitx5Process);
89-
// qCDebug(procMon) << "Exiting ProcessMonitor constructor";
89+
90+
QString output, error;
91+
exeCommand("pgrep", QStringList() << "-u" << getCurrentUserName() << "-x" << "fcitx5", output, error);
92+
if (!output.isEmpty()) {
93+
QStringList pids = output.trimmed().split('\n', Qt::SkipEmptyParts);
94+
for (const QString &pid : pids) {
95+
qCDebug(procMon) << "Killing existing fcitx5 process with PID:" << pid;
96+
QString killOutput, killError;
97+
exeCommand("kill", QStringList() << pid.trimmed(), killOutput, killError);
98+
}
99+
}
100+
QProcess process;
101+
bool started = process.startDetached(PROCESS_NAME, QStringList() << "-d");
102+
if (started) {
103+
qCDebug(procMon) << "Successfully started fcitx5 process in constructor";
104+
} else {
105+
qCWarning(procMon) << "Failed to start fcitx5 process in constructor";
106+
}
90107
}
91108

92109
void ProcessMonitor::startMonitoring() {

0 commit comments

Comments
 (0)