다음 명령이 입력되었습니다 :
sleep 12h; nuke-russia
데비안 중 하나에 입력되었습니다 tty
. 나는 아무것도 핵무기없이 수면을 취소하고 싶습니다. 나는 nuke 명령이 한 순간이라도 실행되기를 원하지 않습니다. 다른 5 개의 터미널을 사용할 수 있습니다. 내가 무엇을 할 수 있을지?
다음 명령이 입력되었습니다 :
sleep 12h; nuke-russia
데비안 중 하나에 입력되었습니다 tty
. 나는 아무것도 핵무기없이 수면을 취소하고 싶습니다. 나는 nuke 명령이 한 순간이라도 실행되기를 원하지 않습니다. 다른 5 개의 터미널을 사용할 수 있습니다. 내가 무엇을 할 수 있을지?
답변:
앞으로는 Ctrl + C &&
를 ;
sleep X && echo bla
누르지 말고 수면을 멈추고 반향을 울리지 않고 대신 사용해보십시오.
가능하다면 담당 바이너리 이름을 바꿀 수 있습니다. 그렇게하면 bash는 nuke-russia
존재하지 않기 때문에 실행할 수 없습니다.
다른 해결책은 담당 쉘을 죽이는 것입니다.
편집 :
책임있는 쉘의 PID를 찾는 방법 (부모가 있어야 함)
pid of sleep 12h
가 1234 인 경우
책임있는 쉘을 찾은 ps -o ppid= 1234
다음 kill -9로 종료하십시오.
분명히
kill -s SIGHUP [pid]
해당 터미널 세션을 완전히 종료하고 해당 세션을 효과적으로 끊어야합니다.
따라서 다른 답변과 마찬가지로 명령 ps -ef | grep sleep
을 통해 pid
신호를 보내야합니다.
-= 수정 =-
kill
플래그는 -s
내 경우 SIGHUP에서 사용하는 신호를 지정 걸려 명령을 알려줍니다.
내가 왜 kill -s SIGHUP [pid]
(또는 ppid
peth가 제안한) 사용을 제안하기로 선택한지 명확히하기 위해 Wikipedia 의 도움을 요청 합니다.
POSIX 호환 플랫폼에서 SIGHUP은 제어 터미널이 닫힐 때 프로세스로 전송되는 신호입니다. (이것은 원래 직렬 회선 삭제 프로세스에 알리기 위해 설계되었습니다). SIGHUP은 헤더 파일 signal.h에 정의 된 기호 상수입니다.
...
직렬 회선을 통한 액세스가 감소함에 따라 SIGHUP의 의미는 최신 시스템에서 다소 변경되었습니다. 이는 종종 제어 의사 또는 가상 터미널이 닫 혔음을 의미합니다.
터미널이 종료되면 완전히 종료되는 프로그램을 많이 발견 했으며이 경우 bash 쉘 (sleep 명령 실행)이 다르지 않을 것이라고 생각합니다.
bbaja42
. peth
쉘이 다음 명령 실행을 중지시키기 위해 쉘을 죽여야한다는 중요한 점을 지적하고 있습니다.
다른 터미널에서 루트 사용자로 로그인하십시오.
nuke-russia 스크립트 (또는 명령)를 찾아 다른 이름으로 바꾼 다음 ...
[root@mysvr ~]# ps -ef | grep sleep
root 1362 1338 0 17:23 pts/0 00:00:00 sleep 12h
root 1393 1367 0 17:24 pts/1 00:00:00 grep sleep
목록에서 올바른 절전 명령을 선택하고 (둘 이상인 경우) PID 번호를 기록하십시오. 제 경우에는 1362입니다.
유형 명령 : kill -9 [PID]
예 : kill -9 1362
nuke-russia
잠을 죽인 후에 실행
nuke-russia
솔루션이 잘못,