Programing

프로그램 취소 명령에서 ctrl c와 동일

lottogame 2020. 11. 15. 10:52
반응형

프로그램 취소 명령에서 ctrl c와 동일


원격 컴퓨터에서 긴 Linux 프로그램을 실행 중이며 중지하고 싶지만 내 문제는 kill 명령을 사용하면 결과를 저장하지 않고 프로그램이 종료된다는 것입니다. 일반적으로 프로그램을 완료하기 위해 내가하는 일은 ctrl c를 사용하는 것이며이 경우 프로그램은 결과를 저장하지만 지금은 세션을 실행중인 컴퓨터에 있지 않으므로 ctrl c를 수행 할 수 없습니다.

내 질문은 : ctrl c와 동등한 원격 방식으로 할 수있는 방법이 있습니까?.


시험:

kill -SIGINT processPIDHere

기본적으로 Ctrl C전송 SIGINT죽이 보내는 동안 (인터럽트) 신호를 SIGTERM보낼 수있는 신호를 지정하지 않으면 기본적으로 (종료) 신호를.


ctrl c는 SIGINT 신호를 보내지 만 조금 더 부드러운 다른 신호가 있습니다. http://www.gnu.org/software/libtool/manual/libc/Termination-Signals.html

다른 신호를 보내기 위해 kill 명령을 사용할 수 있다고 생각합니다. (자세한 정보는 man kill 참조)


당신이 장기 실행 원격 프로세스를 제어하는 경우는 신호 SIGTERM에 대한 처리기 (참조 설치할 수 man signalman sigaction잘 죽어 전에 정리하고,이 주제에 대한 많은 SO 질문).

그것은 매우 일반적인 일입니다.


다음은 mongod의 예입니다.

명령 줄에서 데몬을 시작하려면 :

mongod &

그리고 나중에

kill -SIGINT `pgrep mongod`

당신이되는 것을 인터럽트 핸들러 같은 것을, 당신의 신호 처리기에서뿐만 아니라 명심 매우 당신이 당신의 프로그램의 나머지 부분을 손상하지 않고에서 할 수 있습니다 무엇으로 제한했다. 여기서 할 수있는 가장 좋은 방법은 atomic_t "should_quit"변수를 설정하는 것입니다.


나는 아래와 같이하고있다.

killall -2 <ProgramName>

또는

kill -2 <PID of your process>

나는 신호의 이름을 잊어 버리곤했다. 즉, SIGINT / SIGKILL 여기에 killall -2 또는 killall -9와 같은 번호를 사용하고 있습니다.

참고 URL : https://stackoverflow.com/questions/514771/equivalent-of-ctrl-c-in-command-to-cancel-a-program

반응형