質問があります:
しばらく前にというソフトウェアをインストールしましたが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-}]
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にこのプロセスを開始するように指示したようです。このプロセスをリストから除外したいと思います。
[ここでさらに進行状況]
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
解決策:
- pstreeでプロセス名を探す
- htopでプロセスを見つけ、そこからPIDを取得します。
- コマンドを使用して、
~$ ps j [PID]
親プロセスのPIDを見つけます。 - PIDが1の場合は起動中です。
systemd
- systemdで始まった場合は、次のようにします。この回答手順 1 と 2 で取得した情報とともに、
systemd
起動時に実行されるリストからプロセスを完全に削除します。