내 서버는 데비안을 사용합니다.
방금 MediaCore를 설치했는데 훌륭하게 작동합니다.
이제 항상 시작하기를 원하며 서비스로 시작하거나 백그라운드에서 어떻게 시작할 수 있는지 묻고 싶습니다.
시작하는 방법을 알고 있지만 프로그램이 실행되는 한 쉘은 쓸모가 없습니다.
그렇다면 서비스/데몬을 실행할 때 어떻게 자동으로 실행합니까?
답변1
몇 가지 옵션이 있습니다.
먼저 화면에서 실행한 screen
다음 실행 후 Ctrl-A를 눌러 화면을 종료할 수 있습니다. 나중에 화면에 다시 연결할 수 있습니다 screen -RR {screen number}
. 를 이용하여 화면번호를 알 수 있습니다 screen -ls
. (활성 화면이 하나만 있는 경우 screen -RR
다시 연결하면 됩니다.)
둘째, 셸에서 시작하고 &
명령을 추가하여 백그라운드에 배치할 수 있습니다. 그러나 쉘이 명령의 출력을 쉘 주위로 퍼뜨리지 않도록 stdout 및 stderr을 적절한 파일로 리디렉션하려고 합니다. 내 생각엔
$ command > command.stdout 2> command.stderr &
당신이 찾고있는 것.
저는 MediaCore를 사용해본 적이 없어서 그것이 무엇을 출력하는지 모릅니다. 이는 stdout이든 stderr이든 관계없이 모든 출력을 파일로 캡처하려는 경우에 작동합니다.
$ command &> command.output &
그러나 장기적으로 Debian을 사용하고 있으므로 올바른 방법은 이에 대한 init 스크립트를 추가하는 것입니다(@user606723이 언급한 대로). skeleton
스크립트 중 하나가 /etc/init.d
좋은 출발점이 될 것입니다.
답변2
"screen"을 사용하여 프로그램을 실행하거나 "hohup"을 사용하여 터미널에서 분리할 수 있습니다.
nohup my_app 2>/dev/null 2>&1 &
또는
screen -d -m my_app