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
하지만 프로세스에 대한 제어력을 잃습니다.