답변:
대부분의 경우 다음과 같이 작동합니다.
전제 조건 :가 reptyr
와 tmux
/ screen
설치; 당신은 그들을 찾을 수 있습니다 apt-get
또는 yum
플랫폼에 따라.
Ctrl+ Z를 사용 하여 프로세스를 일시 중단하십시오.
백그라운드에서 프로세스를 다시 시작하십시오. bg
다음을 사용하여 백그라운드 프로세스의 프로세스 ID를 찾으십시오. jobs -l
이와 비슷한 것을 볼 수 있습니다 :
[1]+ 11475 Stopped (signal) yourprocessname
다음을 사용하여 현재 상위 (쉘)에서 작업을 제거하십시오. disown yourprocessname
시작 tmux
(선호), 또는 screen
.
reptyr 을 사용하여 프로세스를 tmux
/ screen
세션에 다시 첨부하십시오.
reptyr 11475
이제 멀티플렉서 (기본값 Ctrl+ B, Dfor tmux
또는 Ctrl+ A, Dfor screen
)를 분리하고 프로세스가 tmux
/ 에서 계속되는 동안 SSH 연결을 끊을 수 있습니다 screen
.
나중에 SSH로 다시 연결하면 멀티플렉서 (예 :)에 연결할 수 있습니다 tmux attach
.
sudo reptyr 1430
나는 아직도 있어요 ". ... [-] 아이의 청각을 열 수 없습니다 수 없습니다 1430 PID에 첨부 : 사용 권한이 거부되었습니다"
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
bg
에는 프로세스가 백그라운드에서 실행 중이므로 대신 jobs
말해야 합니다. Running
Stopped
reptyr
좋지만 권한 오류가 발생했습니다
$ reptyr 30622
[-] Unable to open the tty in the child.
Unable to attach to pid 30622: Permission denied
그런 다음 발견
-L Like '-l', but also redirect the child's stdio to the slave.
그것은 매력처럼 작동했습니다
$ reptyr -L 30622
Opened a new pty: /dev/pts/4
-L
당신과 같은 메시지를 Opened a new pty: /dev/pts/6
받았지만 일시 중단 top
이 tmux에 나타나지 않았습니다. 내가 여기서 무엇을 놓치고 있습니까?
해당 명령을 사용할 수있는 경우 disown을 사용하여 터미널에서 작업을 분리 할 수 있습니다.
nohup으로 시작하는 것이 안전합니다.
nohup
합니까? disowning
프로세스 는 어떻게 작동합니까?