프로세스를 시작하고 터미널 창(예: )의 백그라운드에 놓으면 ping google.com &
이를 사용하여 프로세스를 종료할 수 있습니다 kill %1
(작업 1이라고 가정).
하지만 다른 터미널 창(또는 탭)을 열면 아래에 백그라운드 프로세스가 나열되지 않아 jobs
직접 사용할 수 없습니다 kill
.
다른 터미널 창이나 탭에서 이 프로세스를 종료할 수 있습니까?
참고: 저는 Xfce 터미널 에뮬레이터 0.4.3과 bash를 사용하고 있습니다. (솔루션이 bash가 아닌 다른 공통 셸에 있는 경우에도 이에 대해 열려 있습니다.)
답변1
예, 알아야 할 것은 프로세스의 프로세스 ID(PID)뿐입니다. ps
, 또는 명령 을 사용하여 이를 찾을 수 있습니다 pidof
.
kill $(pidof ping)
다른 쉘에서도 작동해야 합니다. 그렇지 않은 경우 ps 및 grep을 사용하여 ping을 수행할 수 있습니다.
답변2
다른 터미널 창에 입력 하면 top
실행 중인 모든 프로세스가 나열됩니다. 프로세스 ID를 기록해 job
두고 q
이 화면에서 나가세요. 그런 다음 kill
프로세스는 평소와 같습니다.
답변3
나는 보통 다음과 같은 일을 합니다:
ps aux | grep $PROCESS | grep -v grep | awk '{print $2 " " $11}'
예를 들어 $PROCESS="bash"인 경우 현재 세션의 출력은 다음과 같습니다.
2683 bash
4481 bash
5695 bash
그런 다음 더 이상 운영하고 싶지 않은 프로그램을 선택합니다 kill $PID
./bin/bash
ps
및 grep
(선택 사항) awk
PID를 추적하는 데 도움이 됩니다 kill
.
답변4
쉘에서 이 작업을 수행하기에는 너무 간단하고 대답이 아닙니다. 그러나 "해결"하려는 모든 사람들을 위해:
닫아야 하는 다른 터미널 창으로 전환하고 "X"를 클릭합니다. 그러면 프로세스가 종료될 것이라고 말하고 내가 정말로 이 작업을 원하는지 묻습니다. Yes
. 그게 내가 필요한 전부입니다.