`
varsoft
  • 浏览: 2438574 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用nohup让程序永远后台运行

阅读更多

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

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

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

nohup /root/test.php &

提示:

[1] 54470
[~]$ appending output to nohup.out

嗯,证明运行成功,同时把程序运行的输出信息放到当前目录的 nohup.out 文件中去。

附:(nohup命令参考,from: http://www16.boulder.ibm.com/pseries/zh_CN/cmds/aixcmds4/nohup.htm

------------------------------------------------------------------------------------------------------------------------------------------------

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 参数指定命令的退出状态。

示例

  1. 要运行注销后后台中的命令,请输入:
    $ nohup find / -print&

    输入该命令后,显示如下:

    670
    $ 输出发送到 nohup.out

    进程 ID 号更改为 & (表示“and”的符号)启动的后台进程的 ID 号。消息 输出发送到 nohup.out 通知您来自 find / -print 命令的输出在 nohup.out 文件中。查看这些消息后可以注销,即使 find 命令仍在运行。

  2. 要运行后台中的命令并且把标准输出重定向到一个不同的文件,请输入:
    $ nohupfind/-print>filenames&

    本例运行 find / -print 命令并且把输出存储到命名为 filenames 的文件中。现在只显示进程 ID 和提示:

    677
    $

    因为 nohup 命令需要片刻时间来启动 Command 参数指定的命令,在注销前请等待。如果太快注销,Command 参数指定的命令可能根本没运行。一旦 Command 参数指定的命令启动,注销就不会对其产生影响。

  3. 要运行不止一条命令,请使用 shell 过程。例如,如果写 shell 过程:
    neqn math1 | nroff > fmath1

    且命名它为 nnfmath1 文件,那么可以为 nnfmath1 文件中所有命令运行 nohup 命令,命令为:

    nohup sh nnfmath1
  4. 如果给 nnfmath1 文件分配执行许可权,那么可以通过发出如下命令得到相同的结果:
    nohup nnfmath1
  5. 要在后台中运行 nnfmath1 文件,请输入:
    nohup nnfmath1&
  6. 要在 Korn shell 中运行 nnfmath1 文件,请输入:
    nohup ksh nnfmath1


------------------------------------------------------------------------------------------------------------------------------------------------

分享到:
评论

相关推荐

    一文明白使用nohup将服务器训练程序后台运行不关闭+随时通过查看训练情况输出与visdom可视化

    使用nohup将训练程序后台不间断运行+随时查看训练情况输出与可视化使用服务器进行远程训练nohup指令和查看输出缺省输出文件的写法指定输出文件的写法和CUDA一起用实时查看out配合visdom使用 使用服务器进行远程训练 ...

    Linux nohup实现后台运行程序及查看(nohup与&)

    一般运行linux上的程序都是执行 .sh 文件(./sh文件),那如果不影响当前CMD窗口的操作,需要后台运行怎么办呢? 这时就需要借助 nohup 和 & 命令来实现。 nohup java -server -Xms128M -Xmx512M -XX:MetaspaceSize...

    【已解决】利用nohup使得Python Flask项目在Ubuntu系统上后台运行

    2、nohup命令:在系统上运行一个进程的时候,不想让其在你退出账号时关闭,即可用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。 3、nohup在不规定的情况下,所以输出内容会到nohup.out中。 ...

    浅析Linux中使用nohup及screen运行后台任务的示例和区别

    在终端输入command &运行,这时候使用Ctrl + C中止命令将会失效,因为对&后台运行SIGINT1信号免疫,程序会继续运行。 但如果你直接关掉终端, 进程将跟着中止。 可见,使用&后台运行的进程会被SIGHUP2信号中止,但是...

    nohup命令 后端运行程序

    nohup命令的全称为“no hang up”,该命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件...

    nohup和&的区别

    使用&后台运行程序: • 结果会输出到终端 • 使用Ctrl + C发送SIGINT信号,程序免疫 • 关闭session发送SIGHUP信号,程序关闭 使用nohup运行程序: • 结果默认会输出到nohup.out • 使用Ctrl + C发送SIGINT信号...

    解决python nohup linux 后台运行输出的问题

    遇到问题 nohup python flush.py & ...以上这篇解决python nohup linux 后台运行输出的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:

    详解linux下nohup日志输出过大问题解决方案

    最近在一hadoop测试集群运行一个spark streaming程序,然后使用nohup ./execute.sh & 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,于是我想办法通过减小文件...

    Linux技巧:让进程后台运行

    Linux技巧:让进程后台运行,包括一些常用的操作技巧,nohup,setid.screen等。

    Linux中jar包启动和jar包后台运行的实现方式

    继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar shareniu.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被...

    在python中使用nohup命令说明

    如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令,该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。 实例操作 例如运行django项目 1.例如,进入项目目录: cd ...

    Linux后台运行Python程序的几种方法讲解

    1.第一种方法是直接用unhup命令来让程序在后台运行,命令格式如下: unhup python 文件名.py (> ***.log )& 在这个命令中,python指定我们要执行的文件为python文件,后面的文件名.py即是我们要执行的文件。括号...

    Linux nohup命令原理及实例解析

    在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想...

    Linux-nohup日志拆分

    主要涉及Linux下对nohup的日志按照每天定时拆分生成新的日志并清空nohup原来的日志

    linux后台执行命令&和nohup的具体使用方法

    为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。 & 当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh & 适合在后台运行的...

Global site tag (gtag.js) - Google Analytics