거부 후 프로세스를 종료하는 방법

거부 후 프로세스를 종료하는 방법

disown저는 SSH를 통해 장기 실행 프로세스를 실행하는 데 익숙합니다 . 예를 들어 다음 프로그램을 실행합니다.

vmd -e script.tcl > out.txt &

disown -a그런 다음 그것을 케이스에서 제거하는 데 사용했습니다 . 터미널을 다시 연결하면 out.txt프로그램이 완료되었다는 메시지가 나타납니다. 그러나 vmd>vmd()의 명령 프롬프트가 표시됩니다. VMD는 화학 시뮬레이션을 위해 TCL 스크립트를 실행하는 프로그램입니다. 자체 쉘이 있는 Python과 유사하다고 가정할 수 있습니다.

http://www.ks.uiuc.edu/Training/Tutorials/vmd/tutorial-html/node8.html

fork retry: Resource temporary unavailable잠시 후 실행 중인 프로세스의 제한으로 인해 ssh()에 연결할 수 없습니다 . 먼저 대기 상태에 있는 거부 프로세스를 종료하는 방법을 알고 싶습니다.

둘째, 끝에 my 를 vmd넣어 프로그램을 종료하면 나중에 사용할 수 있도록 위의 문제를 해결할 수 있는지 궁금합니다 .exitscript.tcl

답변1

이를 수행하는 방법은 여러 가지가 있습니다. (TM값)

해결 방법 1(아마도 최고): vmd스크립트 끝에 종료 명령을 추가합니다.

해결 방법 2: vmd다음과 같이 명령의 표준 입력을 빈 장치로(또는 마음 상태에 따라 빈 장치에서) 리디렉션합니다.

vmd -e script.tcl > out.txt < /dev/null &

이렇게 하면 vmd스크립트가 완료되고 표준 입력에서 다음 명령을 읽으려고 시도할 때 "파일 끝"을 수신하고 종료됩니다.

해결 방법 3: Kill 남은 vmd프로세스를 사용합니다 kill. 쉘이 시작된 후 인쇄할 때 적어 &두거나 명령을 통해 찾을 수 있는 PID가 필요합니다 ps ax. 먼저 kill -TERM(기본값) 시도하고, 작동하지 않으면 로 수행하십시오 kill -HUP.아니요kill -KILL별칭을 사용하십시오 kill -9.

해결 방법 4: 대신 screen또는 를 사용합니다 . 이렇게 하면 실행 중인 프로세스에 다시 연결하고 더 많은 명령을 입력할 수 있습니다(예: ) .tmuxdisownvmdexit

관련 정보