ps
コマンドを実行したときに得られる結果は次のとおりです。
$ ps
PID TTY TIME CMD
14777 ttys000 0:00.25 -bash
19716 ttys000 0:00.15 vi templates/base.html
8240 ttys001 0:00.11 -bash
8284 ttys002 0:00.04 -bash
14832 ttys004 0:00.06 -bash
17504 ttys004 0:00.15 python ./app.py
17505 ttys004 1:05.52 /Users/Utka/virtualenv/bin/python ./app.py
19732 ttys005 0:00.02 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp MrDifferent
19734 ttys005 0:00.01 -bash
誤ってMacでCmd + Wを押して端末を閉じました。端末を再度開くと、ps
リストに表示されます。私はこの仕事を続けたいと思います。
私は編集のためにvimプロセスie19716を再度有効にしたいと思います。特定のvimプロセスを再度開くには、どのコマンドを実行する必要がありますか?
答え1
元のディレクトリに戻り、名前のbase.html
あるファイルを見つけます。ファイルが存在する場合は、実行してファイルの最後の状態を復元.base.html.swp
できます。vi -r base.html
$ ls -a | grep base
base.html
.base.html.swp
$ kill 19716 #your vim process
$ vi -r base.html
[ save your changes, quit ]
$ rm -f .base.html.swp
答え2
短い:いいえ、できません。
long:実際、viはそうでなければ実行されないかもしれません。親プロセスは直接シェルではありません。実行中の内容を確認し、データをps -efl
追跡するために使用できます。PPID
PID
しかしそれは働く前景に切り替えを使用できますfg
。これは現在のシェルの子プロセスにのみ適用されます。
あなたはできます調査するプロセスはまたはをgdb
使用しdtrace
ますが、プロセスの制御力を失います。