这是我运行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 可能不会运行,除非它家长进程不直接是shell。您可以使用 来查看正在运行的内容ps -efl
,并按照数据进行PPID
操作PID
。
然而,它不是一个工作您可以使用 切换到前台fg
。这只适用于当前 shell 的子进程。
你可以检查进程使用gdb
或dtrace
,但失去了对该进程的控制。