-
nohup命令在linux系统中的使用指南
- 时间:2024-11-23 11:34:05
大家好,今天Win10系统之家小编给大家分享「nohup命令在linux系统中的使用指南」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!
Linux系统操作中,由于各种原因而导致某些程序在运行的时候断开,这就需要用到Linux中的nohup命令了,使用该命令可以让程序一直在后台中运行,一起来学习下吧。
在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可
以看到在关闭终端瞬间服务自动关闭。
咨询红旗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的用法介绍了,使用该命令后程序就不会莫名其妙的断开,保持一直后台执行的情况,希望本文介绍的内容对你有所帮助。
以上就是关于「nohup命令在linux系统中的使用指南」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~
『Win10系统之家www.ghost580.net*文章,未经允许不得转载!』
相关文章
-
mkdir命令在Linux操作系统中主要用于创建文件夹,且创建的文件夹不能重名,下面小编将给大家介绍下Linux中mkdir命令的用法,以便你有个了解。
1.命令格式:
mkdir[选项]目录。。。
2.命令功能:
通过mkdir命令可以实现在指定位置创建以DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对... -
Krita是一款位图形编辑软件,包含了绘画程序和照片编辑器,能够对图片进行处理,下面小编就给大家介绍下Linux下如何使用Krita软件处理照片,有兴趣的一起来了解下吧。图1:侏儒山羊Annabelle
Krita是一款很棒的绘图应用,同时也是很不错的照片编辑器。今天我们将学习如何给图片添加文字,以及如何有选择地锐化照片的某一部分。
Krita简介
... -
Linux中的iotop命令主要用于显示硬盘IO,但该命令只存在于kernelv2.6.20之后的版本,那么要如何安装iotop命令呢?下面小编就给大家介绍下如何在Linux上安装iotop命令。
iotop命令是界面风格类似top命令。这个命令只有在kernelv2.6.20及以后的版本中才有。python版本需要python2.7及以上版本
官方的说明:<... -
XFS文件系统是一个64位的高性能文件系统,拥有非常强大的功能,原本使用于irix系统,那么如何在Linux系统中创建和挂载XFS文件系统呢?随小编一起来学习下吧。
问题:我听说一个牛X的文件系统XFS,打算在我的磁盘上试试XFS。那格式化和挂载XFS文件系统的Linux命令是什么呢?
XFS是高性能文件系统,SGI为他们的IRIX平台而设计。自从2001年移...