Linux后台运行进程nohup

2019-02-16 08:48:00   Linux

Linux 后台运行

我们常常会用终端连接Linux服务器,然后在运行类似Tomcat 、Web Logic等 web容器的时候希望退出终端依然可以运行。

我们可以通过 nohup command & 来使程序后台运

  • 以Tomcat为例
nohup ./startup.sh &

然后在shell中提示了nohup成功后:

nohup: ignoring input and appending output to ‘nohup.out’

然后按键盘任意键,回到shell输入命令窗口,然后在shell中输入

exit

退出终端,这时候,你的Tomcat就作为后台服务挂在Linux上了。

注意:不要执行完nohup直接点击关闭程序关闭终端,这样会干掉该命令的session,导致nohup对应的进程被通知一起被干掉,从而导致后台运行失败。

上文提到过nohup成功后的提示:nohup: ignoring input and appending output to ‘nohup.out’ 默认情况下nohup的作业的所有输出会被重定向到 nohup.out这个文件中,当然,你也可以指定输出:

nohup command > vienout.txt 2>&1 &

由于使用nohup时,会自动将输出写入nohup.out文件中,如果文件很大的话,nohup.out就会不停的增大,我们可以利用Linux下一个特殊的文件/dev/null来解决这个问题,这个文件就相当于一个黑洞,任何输出到这个文件的东西都将消失 只保留输出错误信息 nohup command >/dev/null 2>log & 所有信息都不要 nohup command >/dev/null 2>&1 &

这里解释一下后面的2>&1 。 这涉及到Linux的重定向,其中0、1、2分别是标准输入、标准输出、标准错误输出,用来指定需要重定向的标准输入输出。默认情况下是标出输出,也就是1 。例如我们而上文提到的 2>&1 是 将错误信息重定向到标准输出。

还有就是如果不想让程序输出,Linux下有一个/dev/null的特殊文件,就像一个黑洞,所有输出到这个文件的信息全部会消失,如果你不需要输出日志,这样做就不会导致输出日志文件越来越大,占用存储空间的问题了

关于Linux,新手想继续了解一些知识的话,推荐看一下《鸟哥的Linux私房菜》,讲的简单易懂,适合入门和作为工具书平时查阅

附:

  • ctrl+c #结束当前任务
  • ctrl+z #挂起当前任务
  • jobs -l #查看任务,返回任务编号 和 进程号
  • bg %n #编号n的任务转向后台运行,实际上bg n 也可以
  • fg %n #编号n的任务转向前台运行

转载请注明来源:

更多:免费搭梯子(ss+outline)教程

vien.tech版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/52
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册

亲情非友情链接