SSH 세션을 종료하고 현재 명령줄을 계속 실행하려면 어떻게 해야 합니까? [복사]

SSH 세션을 종료하고 현재 명령줄을 계속 실행하려면 어떻게 해야 합니까? [복사]

약 10일 정도 걸리는 실행 명령이 있습니다. 프로세스는 모든 하위 디렉터리에서 파일을 검색하고 비디오를 변환하는 것이기 때문입니다. 발견된 각 비디오 명령줄에 대해 시스템은 프로세스 번호를 변경합니다.

이것은 내가 실행중인 라인입니다 :

find . -exec ffmpeg -i {} -vf scale=1280:720 -vcodec libx264 -crf 30 -b:v 300000 {}_250.mp4 \;

SSH 세션을 종료하고 현재 명령줄을 계속 실행하려면 어떻게 해야 합니까?

벌써 둘째 날을 맞이했는데 단순히 연결이 끊어져서 이 모든 시간을 잃게 될까 봐 걱정됩니다.

답변1

그리고

netstat --inet --inet6 -lnp | grep :22

프로세스의 PID를 찾을 수 있습니다 sshd. 그리고

# pstree -p -n 1527
sshd(1527)─┬─sshd(32296)───bash(32298)───screen(32336)
           └─sshd(32723)───bash(32725)───find(32763)───sleep(323)

하위 프로세스를 볼 수 있습니다.

죽으면 bash(32725)죽는다 .find(32763)SIGHUP이는 find백그라운드에서 실행하고 내장된 쉘을 사용하여 방지 할 수 있습니다 disown. 그러나 sshd(32723)프로세스가 종료되면 모든 하위 프로세스와 제어 터미널이 사라지므로 커널이 해당 프로세스를 종료합니다.

일시 중지 shd(32723)하고 bash(32725). 이렇게 하면 SSH 연결이 끊어졌을 때 조회를 종료할 수 없습니다.

kill -stop 32723 32725

다음 번에는 더 똑똑하게 행동하십시오. 웹을 통해 로그인을 하면 이용하지 않거나 screen로그인하지 않을 이유가 거의 없습니다.tmux

답변2

nohup find . -exec ffmpeg -i {} -vf scale=1280:720 -vcodec libx264 -crf 30 -b:v 300000 {}_250.mp4 \; &

처음 종료할 때 경고 메시지가 표시되지만 반복적으로 종료하면 터미널 입력이 필요하지 않는 한 프로그램이 계속 실행됩니다.

그러나 나는 너무 빨라서 귀하의 프로그램이 이미 실행 중이라는 사실을 무시했습니다.

관련 정보