我有一个问题:
不久前,我安装了一个名为 的软件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 时,我看到以下内容:
当我关闭计算机时,我必须等待 1 分 30 秒,当我按 F2 时,我会看到以下消息:
A stop job is running for Wii U Gamecube Adapter
我想清理这个未解决的问题。我通常会记录修改文件时所做的事情,但我认为我没有在这里做,所以我很难找到我在哪里进行了更改,导致该程序在启动时运行。
[这里有一些进展 - 编辑 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启动这个进程。我想把这个过程从列表中删除。
[更多进展在这里]
通过转到 /etc 并使用 ag 搜索找到了 gamecube.service 文件。
systemd/system/gamecube.service
2:Description=Wii U Gamecube Adapter
8:ExecStart=/usr/local/bin/wii-u-gc-adapter
我想彻底删除这个服务。 [第三次编辑]我正在关注这个答案:https://superuser.com/a/936976
[第四次编辑]按照超级用户的步骤,发现父进程确实是用ps j进行systemd后,这个问题现在已经解决了。
答案1
解决方案:
- 在 pstree 中查找进程名称
- 在htop中查找进程,从那里获取PID
- 使用命令
~$ ps j [PID]
查找父进程的PID - 如果 PID 为 1,则正在启动
systemd
- 如果是由systemd启动,则使用这个答案以及从步骤 1 和步骤 2 中获得的信息,
systemd
从启动时运行的列表中完全删除该进程。