작업 제어를 위한 "kill" 명령은 프로세스에 신호를 보내는 "kill" 명령과 동일합니까?

작업 제어를 위한 "kill" 명령은 프로세스에 신호를 보내는 "kill" 명령과 동일합니까?

Linux에서는 다음을 수행할 수 있습니다.

kill 1(또는 kill %1)

즉, "프로세스를 닫습니다.직업 번호 1".

그리고 다음을 수행할 수 있습니다.

kill 1234

이는 " SIGTERMPID 1234를 사용하여 프로세스에 신호를 보냅니다"를 의미합니다.

이 두 kill명령은 동일한 명령입니까, 아니면 서로 다른 명령입니까?

답변1

나는 당신이 할 수 있을지 확신하지 못합니다 kill 1(또는 시도할 수는 있지만 루트가 아닌 이상 허용되지 않을 것입니다. 그리고 나서 당신은 놀라게 될 것입니다). 1여기서는 항상 ID가 1인 프로세스를 나타내며, 이는 일반적으로 init(또는 그 변형)입니다.

실제로 귀하의 질문에 대답하기 위해 작업 제어를 지원하는 셸에 있는 경우 kill두 경우(작업 및 프로세스 관리)를 모두 처리하는 셸이 내장됩니다. 예를 들어 참조배쉬의 kill명령.

작업 제어를 지원하지 않는 쉘에 있는 경우(어떤 것이 있습니까?) kill시스템에 바이너리가 됩니다. 일반적으로 /bin/kill; 예를 들어 참조util-linux님의 kill명령. 내장 kill명령이 있는 셸에서도 전체 경로를 지정하여 이 명령에 액세스할 수 있습니다. 이 kill명령은 쉘 없이도 액세스할 수 있습니다(다른 프로그램에서 사용하기 위해).

또한보십시오POSIX의 정의kill, 두 경우 모두를 다룹니다(단, 무엇이 어디에 구현되는지는 지정하지 않음).

관련 정보