linux shell启动多个进程的注意事项

启动多进程时,一定注意在长时间运行进程后添加 &或者nohup,将进程托管给后台,但是这两个命令是有区别的。

nohup在当前shell进程被终止后,可以继续在后台运行,而&在shell退出后也会退出。这是网上的说法,我测试使用nohup会阻塞后边程序,需要加&才能顺序启动进程,nohup只有将输出存储到nohup.out的功能而已当我结束shell之后,进程会退出,并不会保留在后台。

例如编写一个test.sh程序:
unset DISPLAY
export DISPLAY=:0
mkfifo $(pwd)/cmd_fifo
mplayer ( p w d ) / s a n d s t a r . m p 4 − l o o p 0 − f s − q u i e t − s l a v e − i n p u t f i l e = (pwd)/sandstar.mp4 -loop 0 -fs -quiet -slave -input file= (pwd)/sandstar.mp4loop0fsquietslaveinputfile=(pwd)/cmd_fifo &
#mplayer ./sandstar.mp4 -loop 0 -fs -slave -quiet # -input file=/home/nx3/Downloads/mplayer_setup/cmd_fifo
$(pwd)/playerctrl

这是一个启动mplayer播放的后台程序后,再启动一个控制进程,当退出playerctrl后,由于此shell进程退出,mplayer也会终止,添加nohup并不会在后台保留mplayer进程。

你可能感兴趣的:(linux)