私のプロンプトには、現在のディレクトリのgit repoに関するいくつかの情報が含まれています。私が何かをするときcd
、私のシェルは任意のコマンド(例えばgit status
)を実行します。
同じ端末を介してこれらのコマンドの実行を停止する方法はありますか?キーボードからのシグナルの送信(例:Ctrl+経由c)は機能しません。
アップデート#1
私はこのコマンドを永久に無効にしたくありません。ただコマンドが実行を開始し、実行中に停止したいだけです。
ベストアンサー1
これらのコマンドは、特定の形式のシェルの子プロセスです。pstree -p $$
現在シェルで実行されているプロセスを一覧表示する場合。その後、Ctrl-C(SIGINT)と同じシャットダウンコマンドを実行できます。これは手動バックグラウンドコマンドの例ですが、プロンプトの更新にも同じでなければなりません。説明すると、$$
pstreeはシェルプロセスIDを置き換え、pstreeは親/子関係のすべてのプロセスを表示し、-pオプションはそれを現在のシェルに制限します。もちろん、シェルpidを殺すのではなく、殺したい子供だけを殺してください。
$ find / 2> /dev/null > /dev/null &
[1] 916595
$ pstree -p $$
bash(915332)─┬─find(916595)
└─pstree(916598)
$ kill 916595
[1]+ Terminated find / 2> /dev/null > /dev/null
$
`