nohup은 server에서 파일을 실행할 때 백그라운드에서 계속 실행하게 해주는 유용한 녀석이다. 컴퓨터를 끄더라도 여러 개의 명령어를 sequential하게 실행해주니 매우 편리하다. 일단 사용방법은 다음과 같다.
먼저 실행할 파일을 만들어준다.
$ vim shell.sh
편집기를 통해 연 shell.sh 파일에 다음과 같이 입력해주면 된다.
# shell.sh
python A.py
python B.py
실행하고 싶은 명령어 여러 줄을 입력한 후 저장한다.
이후, 다음과 같이 입력해주면 된다.
$ nohup ./shell.sh &
위에처럼 입력하면 되는데, 만약 ./을 제외하고 다음과 같이 입력하면
$ nohup shell.sh &
다음과 같은 에러가 뜨게 된다. 당연히 당황하지 않고 shell.sh에 ./을 붙여주면 된다.
nohup: failed to run command 'shell.sh': No such file or directory
만약 정확히 명령어를 입력하더라도 다음과 같은 에러가 나올 때가 있다.
nohup: failed to run command './shell.sh': Permission denied
이는 shell.sh 파일의 퍼미션이 755 보다 낮은 상태여서 발생하는 문제다. 다음과 같은 명령어를 통해 shell.sh 파일의 퍼미션을 설정할 수 있고, 위 에러를 해결할 수 있다.
$ chmod 755 shell.sh
비슷한 역할을 해주는 것으로 screen / tmux 들이 있습니다!