Notice
Recent Posts
Recent Comments
준호씨의 블로그
linux - ssh 리모트 실행을 백그라운드로 돌리기 본문
반응형
리모트 서버에 백그라운드 작업을 독립적으로 돌리고 싶은 경우 다음과 같이 하면 된다.
ssh junho85.pe.kr 'nohup sleep 20 > /dev/null 2> /dev/null < /dev/null &'
좀 줄이면 다음과 같이 하면 된다.
ssh junho85.pe.kr 'nohup sleep 20 1>/dev/null 2>&1 &'
좀 더
처음엔 단순히 생각해서 다음과 같이 해 볼 수 있다.
ssh junho85.pe.kr 'sleep 20 &'
하지만 실행시키는 호스트 프롬프트가 돌아 오지 않는다.
까짓거 마지막에 또 & 를 붙이면?
ssh junho85.pe.kr 'sleep 20 &' &
당연하게도 실행시키는 호스트에서 ps 로 프로세스 확인 해 보면 해당 작업프로세스가 생긴다.
junho85 17892 1.5 0.0 60044 3984 pts/7 S 22:55 0:00 ssh junho85.pe.kr sleep 20 &
뭐 이정도도 괜찮다면 상관 없는데 여러 호스트로 여러 커맨드를 날리게 되면 점점 프로세스가 많이 쌓이게 되는 단점이 있다.
nohup 을 이용하면 이런 문제를 해결 할 수 있다. 그런데 단순히 nohup 으로는 되지 않고 standard output(1), standard error(2) 를 다른곳으로 리다이렉트 시켜 줘야 된다. 위의 예에서는 /dev/null 로 보내서 흔적을 남기지 않도록 처리 했다.
nohup 이나 file destriptor 등에 더 남겨 보고 싶으나 다음 기회에...
참고
Getting ssh to execute a command in the background on target machine https://stackoverflow.com/questions/29142/getting-ssh-to-execute-a-command-in-the-background-on-target-machine
반응형
'개발이야기' 카테고리의 다른 글
python - dictionary 초기화 방법 (0) | 2017.11.15 |
---|---|
PyCharm 단축키 - git commit (0) | 2017.11.15 |
perl - recv 리턴값 (0) | 2017.10.17 |
linux - 쉘커맨드로 특정 cronjob 만 제거 하기 (0) | 2017.10.11 |
shell 프롬프트에 git branch 표시하기. git 커맨드 자동완성 (0) | 2017.10.02 |
Comments