起動時にプロセスが開始される原因は何ですか?

起動時にプロセスが開始される原因は何ですか?

質問があります:

しばらく前にというソフトウェアをインストールしましたがwii-u-gc-adapter、それを実行したときにGameCubeコントローラをLinuxコンピュータに接続し、デスクトップコンピュータでゲームを楽しむことができました。これは素晴らしい作品です。

ある時点で、私はいくつかのアドバイスを受け入れ、起動時にこのプロセスを実行するように私のコンピュータのどこかに指示を置いたでしょう。

私がこの質問をする理由は、コンピュータをシャットダウンすると、このプロセスが終了するまで1分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-}]

htopWiiをフィルタリングすると、次のようになります。

Wii用htopフィルタ

コンピュータをシャットダウンすると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にこのプロセスを開始するように指示したようです。このプロセスをリストから除外したいと思います。

[ここでさらに進行状況]

gamecube.serviceファイルは/ etcに移動し、agを使用して検索して見つけました。

systemd/system/gamecube.service
2:Description=Wii U Gamecube Adapter
8:ExecStart=/usr/local/bin/wii-u-gc-adapter

このサービスを完全に削除したいと思います。 [3番目の編集]私はこの答えに従います。https://superuser.com/a/936976

[4番目の編集]スーパーユーザーステップを実行し、親プロセスが実際にsystemdにps jを使用していることを発見した後、この問題は解決されました。

答え1

解決策:

  1. pstreeでプロセス名を探す
  2. htopでプロセスを見つけ、そこからPIDを取得します。
  3. コマンドを使用して、~$ ps j [PID]親プロセスのPIDを見つけます。
  4. PIDが1の場合は起動中です。systemd
  5. systemdで始まった場合は、次のようにします。この回答手順 1 と 2 で取得した情報とともに、systemd起動時に実行されるリストからプロセスを完全に削除します。

関連情報