nohup命令可以使得程序在后台运行,但是存在一个小问题就是程序的输出会打印在当前的窗口上,需要将程序的输出指向到一个log文件中。
我写了一个脚本将启动程序变成一条命令。
将以下脚本保存为startx.sh,添加可执行权限,输入 ./startx.sh abc 即可将abc程序在后台运行
#/bin/bash
if [ ! $1 ];then
echo "you have to input a serverName"
exit
fi
echo "start " $1 "..."
nohup ./$1 >> log_$1.log 2>&1 &
echo pid:
pidof ./$1
if [ $? -eq 0 ];then
echo $1 "start sucess!"
else
echo $1 "start failed!"
fi
pidof程序用来检查程序运行是否成功,如果未成功,则不存在此进程,会返回非0值。