是什麼導致程序在啟動時啟動?
我有一個問題:
前段時間,我安裝了一個叫 的軟體
wii-u-gc-adapter
,執行它後,我可以將我的 GameCube 控制器插入我的 Linux 機器台式電腦來玩遊戲。這很好用。我一定是在某個時間點接受了一些建議,以便在我的電腦中的某個地方放置一條在啟動時執行此過程的指令。
我提出這個問題是因為當我關閉電腦時,它會掛起一分 30 秒,等待此過程結束。
當我
./wii-u-gc-adapter
自己執行時,我會手動殺死它。但是在安裝它的某個時候,我告訴我的系統執行它。該程序列在 中
usr/local/bin
,這並不讓我感到驚訝。這是我的結尾
$pstree
├─whoopsie───2*[{whoopsie}] ├─wii-u-gc-adapte───2*[{wii-u-gc-adapte}] ├─wpa_supplicant └─xdg-permission-───2*[{xdg-permission-}]
在
htop
我過濾wii時看到以下內容:當我關閉電腦時,我必須等待一分 30 秒,當我按 F2 時,我看到以下消息:
A stop job is running for Wii U Gamecube Adapter
我想清理這個鬆散的結局。我通常會記錄我在修改文件時所做的事情,但我不認為我在這裡做了,所以我很難找到我在哪裡進行了導致該程序在啟動時執行的更改。
$$ Some progress here - edit 1 $$
~$ ps j 1045 PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 1 1045 1045 1045 ? -1 Ssl 0 0:00 /usr/local/bin/wii-u-gc-adapter
所以 1045 的父程序是 PPID 1,即看起來有人告訴 systemd 啟動這個程序。我想將此過程從該列表中刪除。
$$ more progress here $$ 通過轉到 /etc 並使用 ag 搜尋找到一個 gamecube.service 文件。
systemd/system/gamecube.service 2:Description=Wii U Gamecube Adapter 8:ExecStart=/usr/local/bin/wii-u-gc-adapter
我想完全刪除這項服務。
$$ Third edit $$我正在關注這個答案:https ://superuser.com/a/936976 $$ Fourth edit $$按照超級使用者的步驟,在發現父程序確實是用 ps j 進行 systemd 後,這個問題現在已經解決了。
解決方案:
- 在 pstree 中查找程序名稱
- 在 htop 中查找程序,從那裡獲取 PID
- 使用命令
~$ ps j [PID]
查找父程序的PID- 如果 PID 為 1,則它正在由
systemd
- 如果它是由 systemd 啟動的,請將此答案與您從第 1 步和第 2 步獲得的資訊一起使用,以從
systemd
啟動時執行的內容列表中完全刪除該程序。