是什么导致进程在启动时启动?

是什么导致进程在启动时启动?

我有一个问题:

不久前,我安装了一个名为 的软件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 时,我看到以下内容:

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

解决方案:

  1. 在 pstree 中查找进程名称
  2. 在htop中查找进程,从那里获取PID
  3. 使用命令~$ ps j [PID]查找父进程的PID
  4. 如果 PID 为 1,则正在启动systemd
  5. 如果是由systemd启动,则使用这个答案以及从步骤 1 和步骤 2 中获得的信息,systemd从启动时运行的列表中完全删除该进程。

相关内容