Linux下静默运行程序

Redis提供的启动脚本,需要我们一直开启着控制台才能正常运行。当我们,需要关闭客户端的时候,发现Redis也关闭了。那么,nohup命令就帮我们解决了这个问题。nohup就是不挂起的意思( no hang up)。


使用方法:
nohup Command &
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。


如果我们希望把输出重定向到固定的目录文件下,我们可以使用如下命令
nohup Command > outfile 2>&1 &
2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.
注意:【2>&1】符号之间不可以有空格。


如果我们想记录当前应用程序的进程ID,我们可以如下:
nohup Command > outfile 2>&1 & echo $! > pidfile
如上操作,就可以记录此记录下的pid,并保存在pidfile中。之后重启的时候,我们就可以kill这个pid啦。


参考资料:
1. http://www.cnblogs.com/allenblogs/archive/2011/05/19/2051136.html
2. http://blog.chinaunix.net/uid-25100840-id-271097.html
3. http://bowen.blog.51cto.com/136148/94406/

你可能感兴趣的:(Linux下静默运行程序)