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

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

  但是我们很多程序并不象mysqld一样可以做成守护进程,可能我们的程序只是普通程序而已,一般这种程序即使使用 & 结尾,如果终端关闭,那么程序也会被关闭。为了能够后台运行,我们需要使用nohup这个命令,比如我们有个start.sh需要在后台运行,并且希望在 后台能够一直运行,那么就使用nohup:

nohup /root/start.sh &

在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就是不挂起的意思( n ohang up)。

  该命令的一般形式为:nohup command &

  使用nohup命令提交作业

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

  nohup command > myout.file 2>&1 &

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

  使用 jobs 查看任务。

  使用 fg %n 关闭。

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

借鉴url:http://blog.163.com/sparkle_tiangz/blog/static/1175902032011101011818771/

转载于:https://www.cnblogs.com/zhaofei/p/3476250.html

linux nohup命令相关推荐

  1. nohup命令及其输出文件 linux nohup命令详解

    linux nohup命令详解 nohup命令及其输出文件  nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户/关闭终 ...

  2. Linux nohup命令(即使xshell终端关闭,程序依然可以在跑)

    文章目录 20221003参考 nohup和&的区别 在工作中,我们很经常跑一个很重要的程序,有时候这个程序需要跑好几个小时,甚至需要几天,这个时候如果我们退出终端,或者网络不好连接中断,那么 ...

  3. linux nohup命令启动程序,关闭shell,程序依然会关闭

    linux nohup命令启动程序,关闭shell,程序依然会关闭 解决办法 执行完nohup命令之后,使用exit命令退出shell登录 > nohup ./aaa & > ex ...

  4. 【Linux】一步一步学Linux——nohup命令(136)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 nohup命令可以将程序以忽略挂起信号的方式运行起来,被运 ...

  5. linux使进程不依赖终端,Linux nohup命令应用简介--让Linux的进程不受终端影响

    nohup命令应用简介--让Linux的进程不受终端影响 by:授客 QQ:1033553122 #开启ping进程 [root@localhost ~]# ping localhost & ...

  6. 解决:Linux nohup命令不再默认输出日志文件

    Linux使用 nohup命令启动程序后,会打印大量的日志,很快运维同事收到磁盘已满的报警短信通知. 1.解决方案 1.只记录异常日志 # nohup python -u Job.py >/de ...

  7. linux nohup 命令用法详解

    转自:http://www.happydown.com/info/21972.htm @乌云@乌云ssh连接Linux,想关闭连接后  后台还可以运行某程序  可以使用nohup命令 nohup /o ...

  8. linux - nohup 命令 后一按回车就exit

    linux 中使用nohup 命令 &后一按回车就exit 问题描述: 先要后台运行一个Django项目,执行命令nohup python manage.py runserver 0:8002 ...

  9. Linux——nohup命令使用(weblogic启动命令)

    Linux下有时候我们希望某个程序可以一直在后台执行,很多都是使用& 在程序命令结尾来让程序自动运行.  例如: [root@lbogon roy]# ./test.sh & 但是这样 ...

最新文章

  1. 【leetcode】Roman to Integer
  2. 使用reuseport和recvmmsg优化UDP服务器
  3. nginx子请求并发处理
  4. [crypto]-53-openssl命令行的使用(aes/rsa签名校验/rsa加密解密/hmac)
  5. oracle11g broker,张欣橙 Oracle11g 配置DG broker
  6. Python -- 使用模块中的函数
  7. c语言af-1,单反对焦模式中的AF-S、AF-C、AF-A是什么意思,
  8. LeetCode 636. 函数的独占时间(栈)
  9. Pytorch Tensor.unfold()的简单理解与用法
  10. 获取文件夹以及子文件夹里面的所有文件
  11. 过去一年对我帮助最大的三本书
  12. PHP实现文件下载两种方式(a标签和header标签)
  13. D.背单词的小智(二分)
  14. VR项目unity相关
  15. php 超炫 页面,dedecms织梦后台模板,超炫界面风格
  16. 为什么移动端跨平台开发不靠谱?
  17. 什么显卡是个人计算机的基本配置和市场主流,现在()显卡已经成为了个人计算机的基本配置和市场主流。 - 问答库...
  18. 如何让导航条高亮显示
  19. JavaWeb知识点总结
  20. 误删除系统libselinux.so.1之后

热门文章

  1. 倾向得分匹配的stata命令_计量方法的适用条件汇总(二):倾向得分匹配
  2. yii 执行指定迁移文件_MySQL迁移PG工具pymysql2pgsql
  3. python读取大文件内容_Python模块linecache处理大文件
  4. python google buffer_python调用Google Protocol Buffer
  5. 钢琴家软件里曲谱的数据为什么更新不了_企业信息化为什么到现在还是做不好...
  6. 恢复二叉搜索树Python解法
  7. 七桥问题属于计算机科学方法论中的,计算机科学与技术方法论-计算学科中的科学问题ppt...
  8. 个人计算机使用的标准键盘,计算机键盘的基本用法!
  9. java range(10)_Java 中的十个 ” 单行代码编程 ” ( OneLiner )
  10. 为什么D触发器需要建立时间与保持时间