퍼센트 기호와 kill 명령을 사용하여 작업을 중지하는 것이 혼란스럽습니다. kill 매뉴얼 페이지에서 퍼센트 기호를 사용할 수 있음을 나타내는 문서를 찾을 수 없습니다. 이 설명이 다른 곳에 숨겨져 있는지 또는 %
이 플래그가 사용되는 이유를 누군가 나에게 설명할 수 있습니까?
kill -s 19 %1
ID가 1인 작업이 중지됩니다.
답변1
이 %
로고는작업 사양. 간단히 말해서, 작업은 셸에 의해 시작되어 포그라운드에서 실행 중이거나(그렇다면 셸과 상호 작용할 수 없음), 백그라운드에서 실행 중이거나, 일시 중지되거나, 종료될 수 있는 프로세스입니다(그러나 셸은 그렇지 않음). 아직 눈치 채지 못한 경우 작업이 사라집니다.)
%1
쉘의 작업 테이블에 있는 첫 번째 항목의 작업을 나타냅니다. 서로 다른 셸 인스턴스의 작업 번호는 관련이 없으며 프로세스 ID와도 관련이 없습니다. 이 jobs
명령을 사용하여 이 셸의 작업 목록을 볼 수 있습니다. 작업을 조작하는 데 유용한 다른 명령으로 는 작업을 각각 전경이나 배경으로 이동하는 fg
및 가 있습니다. bg
작업을 조작하는 다른 방법은 Ctrl+를 눌러 Z포그라운드 작업을 일시 중지하고 &
마지막에 명령을 실행하여 백그라운드로 직접 보내는 것입니다.
독립 실행형 유틸리티가 있고 kill
이라는 쉘 내장 명령이 있습니다 kill
. 이 명령은 별도의 유틸리티로 존재하므로 쉘을 시작하지 않고도 다른 프로그램에서 호출할 수 있습니다. 이 명령은 쉘 내장으로 존재하므로 프로세스를 시작하기 위한 리소스가 부족하더라도 호출할 수 있으며 kill
쉘 내부 데이터 구조를 이해합니다.
작업은 내부 쉘 데이터 구조이므로 외부 kill
명령은 이를 인식하지 못합니다. 외부 명령은 매뉴얼 페이지에 문서화되어 있습니다. 작업 관련 기능에 대한 문서를 찾으려면 kill
셸 문서를 확인하세요.세게 때리다또는다루기 힘든. 그런 다음 작업에 대한 섹션을 참조하세요.세게 때리다,다루기 힘든. 쉘 매뉴얼에는 jobs
, fg
및 명령도 문서화되어 있습니다 bg
.
답변2
셸에서 작업을 참조하는 방법에는 여러 가지가 있습니다. % 문자는 작업 사양(jobspec)을 나타냅니다. 작업 번호 n은 %n이라고 할 수 있습니다. 작업을 시작하는 데 사용된 이름의 접두사를 사용하거나 해당 명령줄에 나타나는 하위 문자열을 사용하여 작업을 참조할 수도 있습니다. 간단히 작업 이름을 지정하여 전경으로 가져옵니다. %1은(는) "fg %1"과 동의어로, 작업 1을 배경에서 전경으로 가져옵니다. 마찬가지로 "%1 &"는 "bg %1"과 동일하게 백그라운드에서 작업 1을 다시 시작합니다.
답변3
[root@typhoon ~]# jobs
[3]+ Stopped sleep 3000
[5]- Stopped sleep 1001
[6] Running sleep 9922 &
[root@typhoon ~]# /bin/kill %5
kill: cannot find process "%5"
[root@typhoon ~]# kill %5
[root@typhoon ~]#