
Linux Ubuntu 14.04 ~/app/serve.py에 스크립트가 있습니다.
이 폴더에서 실행해야 합니다. 쉘에서는 할 수 있습니다
> cd ~/app && python serve.py
그리고 서버를 운영하고 있어요
백그라운드에서 서버 부팅 시 실행해야 합니다. etc/rc.local(및 etc/init.d/rc.local)에 이 명령을 추가하려고 시도했지만 cd ~/app && python serve.py ~
시작되지 않습니다.
내가 도대체 뭘 잘못하고있는 겁니까?
답변1
/etc/rc.local을 추가하는 대신 cd ~/app && python serve.py
전체 경로를 입력해 보세요. init 프로세스가 ~가 홈 디렉토리라는 것을 알기를 기대하지만 init는 루트로 시작합니다. init는 루트로 시작하기 때문에 /
홈 디렉터리가 아닌 앱 디렉터리를 찾습니다 . 홈 디렉토리 경로를 사용하여 ~를 제거하십시오.
/home/whitecolor/app/serve.py
에 추가해 보세요 /etc/rc.local
. ( 경로 디렉토리를 찾으려면.) 스크립트 상단에 추가하여 Serve.py 스크립트 앞을 pwd
제거하세요 . ( 정상적인 위치에 설치되어 있지 않은 경우 a를 입력하여 경로를 찾아보세요)python
#!/usr/bin/python
which python
편집: "백그라운드에서 실행"이라고 말씀하셨는데 저는 그 말을 놓쳤습니다. 백그라운드에서 명령을 실행하려면 &
명령 뒤에 를 추가하세요. 따라서 위 명령을 배경으로 실행하려면 /home/whitecolor/app/serve.py &
일반적으로 Init는 작업을 시작하고 배경에서 실행하는 데 배경 기호가 필요하지 않습니다.
&
DrDR의 훌륭한 제안은 기본적으로 백그라운드에서 실행되는 것처럼 cron 시작 시 명령 후에 동일한 처리가 필요하지 않습니다 .
답변2
나는 이것을 시도할 필요가 없었지만 아래 @reboot로 시작하는 것과 유사한 줄을 추가하여 cron을 통해 시스템 시작 시 스크립트를 실행할 수 있는 것 같습니다.
#m h dom mon dow command
1 * * * * someHourlyCommand
@reboot python /home/<username>/app/serve.py
참고로, 디렉토리로의 cd'ing을 제거하기 위해 명령을 약간 변경했습니다. 귀하의 상황은 다를 수 있으므로 귀하에게 적합한 것을 선택하십시오.