実行している端末の数は増えていく傾向があり、そのほとんどは重要ではないため、何もiPythonを実行していません。私の以前の質問、How to close all terminals with a bash script that effectively presses Cntrl+Shift+Q in each terminalの一つで何も実行していない端末や、bashスクリプトからiPythonを終了する方法
、webbという名前のユーザーがいないサブプロセスとすべての端末を閉じる方法を説明した:
pgrep bash | xargs -n1 pstree -p -c | grep -v \- | grep -o '[0-9]\+' | xargs kill
私はまた、プロセスのIDを選択するには、多少このbashスクリプトを適応したいと思いますiPythonを実行しています。私はこれまで
例として試してみた何
、
pgrep bash | xargs -n1 pstree -p -c
の一方の出力は次のようになります。
bash(793)───ipython(847)───{ipython}(854)
bash(1787)───ipython(2061)───{ipython}(2062)
bash(6018)───ipython(6052)───{ipython}(6053)
bash(6810)───python(13796)───python(15653)───{python}(15657)
bash(7197)───docker-compose(20923)───docker-compose(20924)─┬─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
├─{docker-compose}(2+
└─{docker-compose}(2+
bash(8629)───ipython(19746)─┬─{ipython}(19748)
├─{ipython}(19762)
├─{ipython}(19763)
├─{ipython}(19764)
├─{ipython}(19765)
├─{ipython}(19766)
├─{ipython}(19767)
└─{ipython}(19768)
bash(9945)───ipython(31376)─┬─{ipython}(31377)
├─{ipython}(31391)
├─{ipython}(31392)
├─{ipython}(31393)
├─{ipython}(31394)
├─{ipython}(31395)
├─{ipython}(31396)
└─{ipython}(31397)
bash(15906)───ipython(15974)───{ipython}(15976)
bash(16302)───xargs(19015)───pstree(19027)
bash(17377)───ipython(17407)───{ipython}(17409)
bash(17797)
bash(22210)───node(26380)─┬─{V8 WorkerThread}(26382)
├─{V8 WorkerThread}(26383)
├─{V8 WorkerThread}(26384)
├─{V8 WorkerThread}(26385)
├─{node}(26405)
├─{node}(26406)
├─{node}(26407)
└─{node}(26408)
bash(32331)───ipython(32359)───{ipython}(32361)
私はPIDを選択したいのですが何も実行していないプロセス(この場合は17797
)と実行中のプロセス(ipython
)私はそれを理解したように、私は、このような線やbash
とipython
の両方を含む行のいずれかを選択したパターンに、その中にハイフンなしですべての行を選択する第2のパイプ、後コマンドに
grep -v \-
を交換したいと思います。最初のステップとして、私は(チュートリアルhttps://www.cyberciti.biz/faq/grep-regular-expressions/に基づく)
pgrep bash | xargs -n1 pstree -p -c | grep -v '(\-|ipython)'
を試みたが、この出力は、例えば、docker-compose
と行を含むように動作しないと思われます。どのようにこの作品を作るためのアイデアですか?
1つの追加のノート一覧表示するには、カットを使用したことは、簡単なこと: 'pgrepコマンドはbashの結果の一つを| xargs -n1 pstree -p -c'は 'bash(4090)──ipython(4116)──{ipython}(4117)'ですが、 'kill 4090'だけでは窓; 'kill -9 4090'が必要です。だから私の '.bashrc'ファイルに追加した完全なコマンドは' alias cls = "pgrep bash | xargs -n1 pstree -p -c | egrep '^(bash |。* [{]?ipython []]?)\\([0-9] + \\)$ '| cut -d \(-f2 | cut -d \)-f1 | xargs kill -9 "' –