내 스크립트가 내 서버의 백그라운드에서 실행되기를 원합니다. 나는 nohup에 화가 난다. 내 script.py가 있습니다. 나는 다음과 같이 실행합니다 :
python3 script.py&
터미널을 닫아도 백그라운드에서 실행됩니다. 이 스크립트는 0부터 시작하여 매초마다 파일에 숫자를 씁니다 /tmp/aaa.txt
. 서버 연결을 끊었다가 다시 연결했는데 숫자가 3000개가 넘었습니다(50분 이상). 그래서 제 질문은 '정말로 사용해야 할까요 nohup
?' 입니다. 예/아니오라면 왜 그렇습니까?
# hostnamectl
Static hostname: my-server
Icon name: computer-vm
Chassis: vm
Machine ID: XXXX
Boot ID: XXXX
Virtualization: vmware
Operating System: Ubuntu 16.04.3 LTS
Kernel: Linux 4.4.0-116-generic
Architecture: x86-64
내 스크립트 script.py
:
import time
i = 0
while True:
f = open('aaa.txt', 'a+')
f.write('Doing somethign: {0}\n'.format(i))
f.close()
i = i + 1
time.sleep(1)
답변1
이 작업은 bash 옵션에 의해 제어됩니다 huponexit
. 설정을 확인하세요. "on"으로 설정하면 종료 시 모든 하위 프로세스에 한숨을 보냅니다. 그렇지 않은 경우 계속 실행해야 합니다.
$ shopt | grep huponexit
huponexit off