프로세스를 종료하는 비공격적인 방법은 무엇입니까? [복사]

프로세스를 종료하는 비공격적인 방법은 무엇입니까? [복사]

명령줄(예: Firefox 또는 Thunderbird)을 통해 프로그램을 닫고 싶습니다. 프로그램은 잘 작동하며 이론적으로는 파일 > 닫기를 선택하면 됩니다. 그러나 명령줄을 통해 이 작업을 수행하고 싶기 때문에 이는 옵션이 아닙니다. 프로세스를 종료할 수 있지만(예 pkill firefox: ), 듣기로는 프로그램을 종료하는 매우 잔인한 방법입니다. 사실 저는 특히 프로그램이 중단될 때 최후의 수단으로 이 작업을 수행하는 데 익숙합니다. 솔직히 이것이 프로그램을 종료하는 올바른 방법인지 모르겠습니다. 응? 아니면 프로그램을 종료하는 더 좋은 방법이 있나요?

답변1

kill프로세스에 신호를 보냅니다. TERM 신호는 기본적으로 전송됩니다. TERM 신호는 프로세스에 의해 "포착"될 수 있습니다. 즉, 신호를 모니터링하고 수신 시 조치를 취할 수 있습니다.

대부분의 경우 Linux 프로세스는 TERM 신호가 전송될 때 정상적으로 작동합니다. 즉, 자체적으로 정리되고 완전히 종료됩니다. 개발자가 이 상황을 올바르게 처리했다고 가정하면 이는 kill많은 프로세스를 종료하는 완벽하게 유효한 방법입니다.

특정 프로세스에서 작동하는지 여부는 개발자에게 달려 있습니다.

포착할 수 없는 몇 가지 신호(예: KILL)가 있습니다. 를 kill실행하여 KILL을 보냅니다 kill -9. 이는 정리할 기회가 없기 때문에 프로세스에 더 파괴적입니다.

답변2

kill -15 [pid/name]프로세스가 정리를 수행할 수 있도록 하는 "정상" 종료 로 사용됩니다.

"재정의" 종료 로 사용되어 kill -9 [pid/name]프로세스를 즉시 종료합니다.

답변3

창 닫기를 시뮬레이션할 수 있습니다. 하지만 창을 안정적으로 식별하는 방법을 잘 모르겠습니다. (즉, 죽이지 않고 파이어폭스를 죽인다 gedit firefox-bug.txt). 설명했듯이 기본적인 절충점은 사용자 상호 작용(확인 대화 상자 닫기)을 장려할지 여부입니다.

https://unix.stackexchange.com/a/247163/29483

관련 정보