기본적으로 자체 자식 프로세스를 만들 수있는 일부 프로세스를 동적으로 시작하고 싶습니다. 원할 때마다 방금 만든 특정 프로세스 그룹을 종료하고 싶습니다.
내가 생각할 수있는 한 가지 방법은 이름으로 프로세스를 시작한 다음 (그룹으로 구별하기 위해) 이름으로 프로세스를 종료하는 pkill것입니다.
문제는 이름으로 프로세스를 시작하여 이름으로 프로세스를 종료하는 방법입니다 pkill. 다른 솔루션에도 열려 있습니다.
기본적으로 자체 자식 프로세스를 만들 수있는 일부 프로세스를 동적으로 시작하고 싶습니다. 원할 때마다 방금 만든 특정 프로세스 그룹을 종료하고 싶습니다.
내가 생각할 수있는 한 가지 방법은 이름으로 프로세스를 시작한 다음 (그룹으로 구별하기 위해) 이름으로 프로세스를 종료하는 pkill것입니다.
문제는 이름으로 프로세스를 시작하여 이름으로 프로세스를 종료하는 방법입니다 pkill. 다른 솔루션에도 열려 있습니다.
답변:
exec쉘 내장을 사용할 수 있습니다 .
bash -c "exec -a MyUniqueProcessName <command> &"
<command>현재 셸을 대체하고 새로운 프로세스가 생성되지 않으므로을 호출하기 위해 새 셸을 시작합니다 exec.
그런 다음 다음을 사용하여 프로세스를 종료 할 수 있습니다.
pkill -f MyUniqueProcessName
동일한 이름으로 둘 이상의 프로세스를 시작한 다음 pkill -f <name>모든 프로세스를 종료 할 수 있습니다 .
bash -c "exec -a MyUniqueProcessName <command> &"합니까?
exec -a name sleep 100은 내가 할 ps -ef때 나타나지만 내가 할 때는 나타나지 않습니다 pstree -p.
bash -c "exec -a mymeld123 meld &"
AMItac / 솔라리스 에이전시
이 경우에는 오디오 트랜스 코딩 도구가 있습니다. (3 회 실행)이지만 이름은 하나만 있습니다.
나는 따라 갔다. Shell 도구에서 bin 디렉토리로 이동하지 않고 3 번 복사 한 다음 새 이름을 지정했습니다. tc-1, tc-2, tc-3 (작은 도구이므로 하드 디스크 공간을 많이 차지하지 않습니다.
따라서 프로세스는 고유 이름으로 시작했으며 다른 트랜스 코딩 프로세스를 중단 할 위험 없이이 고유 이름으로 종료 될 수 있습니다.
또 다른 트릭 일 수 있습니다 ....
#bash 스크립트 Name.sh를 추가하고 실행 가능하게 만드십시오. 거기에 명령을 입력하고 bash 스크립트 자체를 시작하십시오. Centos에서는 bin 이름 자체가 아니라 발췌 한 Bashscript 이름을 사용합니다.
무언가가 누군가를 도울 수 있기를 바랍니다.