nohup命令在linux系统中的使用指南

2016-02-19 20:14 5 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的nohup命令在linux系统中的使用指南,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Linux教程 】

Linux系统操作中,由于各种原因而导致某些程序在运行的时候断开,这就需要用到Linux中的nohup命令了,使用该命令可以让程序一直在后台中运行,一起来学习下吧。

 nohup命令在linux系统中的使用指南

在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了。

Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。

比如要运行mysql在后台:

代码如下:

/usr/local/mysql/bin/mysqld_safe –user=mysql &

但是加入很多程序并不象mysqld一样做成守护进程,可能程序只是普通程序而已,一般这种程序使用 & 结尾,但是如果终端关闭,那么程序也会被关闭。

为了能够后台运行,可以使用nohup这个命令,比如有个test.php需要在后台运行,并且希望在后台能够定期运行,那么就使用nohup:

代码如下:

nohup /root/test.php &

在shell中回车后提示:

[~]$ appending output to nohup.out

原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。

但是有时候在这一步会有问题,当把终端关闭后,进程会自动被关闭,查看nohup.out可

以看到在关闭终端瞬间服务自动关闭。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

咨询红旗Linux工程师后,他也不得其解,在我的终端上执行后,他启动的进程竟然在关闭终端后依然运行。在第二遍给我演示时,我才发现我和他操作终端时的一个细节不同:他是在当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;而我是每次在nohup执行成功后直接点关闭程序按钮关闭终端。。所以这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。这个细节有人和我一样没注意到,所以在这儿记录一下了。

附:nohup命令参考

nohup 命令

用途:不挂断地运行命令。

语法:nohup Command [ Arg ] [& ]

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示and的符号)到命令的尾部。

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

退出状态:该命令返回下列出口值:

126 可以查找但不能调用 Command 参数指定的命令。

127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。

否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

nohup命令及其输出文件

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。

该命令的一般形式为:

代码如下:

nohup command &

使用nohup命令提交作业

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

代码如下:

nohup command 》 myout.file 2》&1 &

在上面的例子中,输出被重定向到myout.file文件中。

使用 jobs 查看任务。

使用 fg %jobnumber是将任务拿到前台执行,拿到前台后如果要关闭这个任务按Ctrl+c组合键即可,但如果要暂停这个任务可以按Ctrl+z组合键这时就会将任务置于暂停状态。

[root@wangdm ~ 22:51 #81]# jobs

[2]+ Stopped dd if=/dev/zero of=/dev/null bs=8k count=100000000

[3]- Stopped dd if=/dev/zero of=/dev/null bs=8k count=100000000

如果想要暂停的任务继续在后执行可以使用 bg %jobnumber这样暂停后的任务继续在后台运行状态会变为running

有人可能注意到了我上面的两个任务编号2和3的后面分别跟了个‘+’和‘-’,这个‘+’代表什么意思呢?这个‘+’就是表示在当前窗口下后台默认调用的任务,听起来有点别扭下做一个实验:

上面我们看到的两个任务都是处于停止状态是吧,正常情况下让任务继续后台运行是bg %jobnumber命令吧我现在做如下操作,我直接输入bg任务2就被激活了,也就是说在此窗口下后台默认将带‘+’的任务2激活了,现在是3变成带‘+’了可以重复操作,现在应该理解了吧;fg跟这个是一样的情况有兴趣的朋友可以去试试

[root@wangdm ~ 23:09 #86]# bg

[2]+ dd if=/dev/zero of=/dev/null bs=8k count=100000000 &

[root@wangdm ~ 23:09 #87]# jobs

[2]- Running dd if=/dev/zero of=/dev/null bs=8k count=100000000 &

[3]+ Stopped dd if=/dev/zero of=/dev/null bs=8k count=100000000

[root@wangdm ~ 23:09 #88]# bg

[3]+ dd if=/dev/zero of=/dev/null bs=8k count=100000000 &

[root@wangdm ~ 23:11 #89]# jobs

[2]- Running dd if=/dev/zero of=/dev/null bs=8k count=100000000 &

[3]+ Running dd if=/dev/zero of=/dev/null bs=8k count=100000000 &

另外有两个常用的ftp工具ncftpget和ncftpput,可以实现后台的ftp上传和下载,这样就可以利用这些命令在后台上传和下载文件了。

上面就是Linux下nohup的用法介绍了,使用该命令后程序就不会莫名其妙的断开,保持一直后台执行的情况,希望本文介绍的内容对你有所帮助。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

来源:http://www.tulaoshi.com/n/20160219/1623106.html

延伸阅读
标签: ASP
  我自己曾想写一篇关于Cookie的文章,特别是Client端Script同Server端ASP通过Cookie交互的问题可能会困扰大家。其实是如 果你对Cookie有深入的理解,特别是对域和路径的概念比较清晰的话,就不会有问题了。 另外想提示的一点是request.ServerVariables("HTTP_COOKIE")得到Cookie和Request.Cookies得到的结果可能会有所不同。 ...
标签: 电脑入门
Linux中的iotop命令主要用于显示硬盘IO,但该命令只存在于kernelv2.6.20之后的版本, 那么要如何安装iotop命令呢?下面图老师小编就给大家介绍下如何在Linux上安装iotop命令。 iotop命令是界面风格类似top命令。这个命令只有在kernelv2.6.20及以后的版本中才有。python版本需要 python2.7及以上版本 官方的说明: Linux has always been a...
  在“Linux 文件命令精通指南”中,我们讨论了利用最基础和最常用 Linux 文件命令所需的基本信息。在本文中,我将对 Linux 系统命令作同样的讨论。 我们在前一篇文章中了解到,在 Linux/UNIX 世界中,一切都被看作文件,包括系统管理命令。单独对于组织而言,我们在本系列的第一部分中讨论了文件命令,并将在本文中提供最有...
标签: iphone 手机软件
注意发送举报内容之前务必在本机上设置好自带邮箱,确保邮件收发功能正常!以前没在手机上发过邮件的,要进自带邮箱的“已发送”栏目看看,确认邮件已经发送成功。此外,这个举报功能仅限于imessage垃圾短信,而不包括我们平时电话号码所用的短信功能。 iMessageSpamReporter总结 希望被广告骚扰至关闭iM...
标签: Illustrator
Gradient Mesh User Guide----Complete渐变网格使用---完全版 当你生成一个渐变网格物体时,这几条线叫网格线,在网格线间相交的点叫网格点(除此以外的点叫节点),四个点围成的面积叫网格面片。(见下图) A. Anchor point 节点 B. Mesh point 网格点 C. Mesh line 网格线 D. Mesh patch 网格面片 原理...

经验教程

874

收藏

75
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部