답변:
오래된 bash조차도 백그라운드로 프로세스를 보내는 데 &를 사용하고 있지만 다른 방법도 거의 없습니다 .. 그러나 기본 두 가지는 다음과 같습니다.
1.)$~ your_command > outputfile_for_stdout &
# runs your command in background, giving you only PID so you can exit that process by `kill -9 PID_of_process`
# & goes at the end of row
2.)$~ your_command > outputfile_for_stdout
# this will run your program normally
# press Ctrl + Z then program will pause
$~ bg
# now your program is running in background
$~ fg
# now your program came back to foreground
3.)you can run terminal window under screen command so it will live until you either kill it or you reboot your machine
$~ screen
$~ run_all_your_commands
# Ctrl + A + D will then detach this screen
$~ screen -r will reattach it
다른 유용한 명령들 :
$~ jobs
# will show you all processes running right now, but without PID
$~ ps
# will show you all processes for actual terminal window
데몬으로 전환하십시오 (서비스)
daemon --name="yourservicename" --output=log.txt sh yourscript.sh
$ servicename &
를 사용 &
하면 프로그램이 종료 될 때까지 쉘을 차단하는 대신 프로그램이 백그라운드에서 실행됩니다.
dixon@dixon-vaio:~$ nautilus & [1] 11835
. 프로세스 ID를 반환하고 새 쉘 프롬프트가 표시됩니다. http://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and 도 확인하십시오 .
다음을 사용할 수도 있습니다.
start-stop-daemon -SbCv -x your_command
다음은 백그라운드에서 프로그램을 시작하고 중지하는 init.d 스크립트 입니다.
터미널에서을 사용하여 screen
명령을 실행 하거나 추적 할 수도 있습니다 &
. 지속적인 프로세스를 실행하는 쉬운 방법.
&
이 경우에 프로세스를 배경으로 사용 하는 것은 제 생각에는 거의 없습니다. OP는 그의 서버가 stdout에 로그하므로 &
터미널을 사용하면 출력이 복잡해집니다. 또한 OP는 터미널 닫기를 언급하므로 OP는 프로세스를 다시 포 그라운드 할 수 없으며 모든 로그 출력이 손실됩니다. 최소한 로그 파일로 리디렉션하거나 screen
설정 을 유지하는 것이 좋습니다. 그러나 screen
OP 의 기본 사항 (분리 / 부착 등)을 설명해주세요.