ubuntu 后台运行程序

在使用服务器时,我们希望后台运行一个程序,不占用当前窗口。Ubuntu中可以使用nohup命令实现这个功能。

nohup sh ./test.sh &

执行上述命令后,系统会在后台运行命令:sh test.sh。同时,会生成输出的日志文件,默认为nohup.out文件。这种命令方式有个缺点,随着命令的执行,nohup.out文件占用内存越来越大。

建议按下面的方式运行nohup命令:

  • 只输出错误信息到日志文件
nohup ./test >/dev/null 2>log &
  • 或者什么信息也不要
nohup ./test >/dev/null 2>&1 &

关于Linux的重定向,Linux的3种重定向

  • 0:表示标准输入
  • 1:标准输出,在一般使用时,默认的是标准输出
  • 2:标准错误信息输出

可以用来指定需要重定向的标准输入或输出。例如,将某个程序的错误信息输出到log文件中:./program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。/dev/null说明:Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影 无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

你可能感兴趣的:(ubuntu)