nohup后台运行以及重定向标准输出和标准异常

  今天在Xshell 终端上运行一个程序A,然后关闭Xshell 终端,然后进入Xshell后用ps -ef | grep 进程名 发现进程A已经挂了。后来上网查找了一些资料,原因shell开启一个进程,当shell终端关闭后,它会向所有由终端开启的进程发起一个hangup信号,所有接些信号的进程退出,如果我们要在退出shell的时候继续运行进程,则需要使用nohup忽略hangup信号,或者 setsid将将父进程设为init进程(进程号为1)。也就是让进程在后台运行

  用如下命令:

    nohup ./程序名 > /dev/null 2>&1

  例如:

    nohup ./voicecode > /dev/null 2>&1

参考资料:

  http://blog.sina.com.cn/s/blog_412ec72c0100y3wp.html

  http://blog.sina.com.cn/s/blog_5aee9eaf0100y5pg.html

  http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

  http://www.cnblogs.com/iLinuxC/archive/2012/05/23/2514750.html

 

  

时间: 2024-10-13 11:42:23

nohup后台运行以及重定向标准输出和标准异常的相关文章

【java】 linux下利用nohup后台运行jar文件包程序

Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar XXX.jar & &代表在后台运行. 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,

Linux scp 设置nohup后台运行

1.正常执行scp命令 2.输入ctrl + z 暂停任务 3.bg将其放入后台 4.disown -h 将这个作业忽略HUP信号 5.测试会话中断,任务继续运行不受影响 1.正常执行scp命令 从oradb30机器拷贝一个文件夹到oradb31机器:scp -r /u01/media/Disk1/ 192.168.1.31:/u01/media/ [[email protected] ~]# scp -r /u01/media/Disk1/ 192.168.1.31:/u01/media/ r

nohup 后台运行命令

在Linux上部署zipkin,在SSH客户端执行java -jar zipkin-server-1.21.0-exec.jar,启动成功,在关闭SSH客户端后,运行的程序也同时终止了,怎样才能保证在推出SSH客户端后程序能一直执行呢?通过网上查找资料,发现需要使用nohup命令. 完美解决方案:nohup java -jar zipkin-server-1.21.0-exec.jar >output 2>&1 & 现对上面的命令进行下解释 用途:不挂断地运行命令.语法:noh

linux下利用nohup后台运行jar文件包程序

Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar XXX.jar & &代表在后台运行. 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,

linux nohup后台运行命令

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户/关闭终端之后继续运行相应的进程.nohup就是不挂起的意思( n ohang up). 一般都是在linux下nohup格式: nohup 命令 或者 nohup 命令 & 这之间的差别是带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上): 它把标准输出(STDOUT)和标准错误(STDERR)结果输出到n

Nohup后台运行程序

场景:我现在需要跑脚本批量处理一些数据,但是我又不想盯着控制台看这个脚本的输出结果,想把这些输出结果记录到一个日志文件里面 方案:可以使用 Linux 的 nohup 命令,把进程挂起,后台执行 用法: $ nohup XXXXXX.sh >> /runtime/deletedata.log & 运行结果(这个数字是进程号): >> [1] 13120 有时候可能会报一个提示: $ nohup: ignoring input and redirecting stderr t

nohup 后台运行脚本,且可以实时查看日志

-u加在python上 python命令加上-u(unbuffered)参数后会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕. 这是因为python的缓存机制所决定的 如果是使用 nohup python abc.py > nohup.log 2>&1 & 的话,可以将日志写入到nohup.log文件,但是没法实时用tail -f nohup.log来查看日志. 解决方法:nohup python -u abc.py > nohup.log 2>&

Linux --- 程序后台运行的几种方法

有时候我们运行一个程序,耗时比较长,所以在快下班的时候或是网络不稳定的时候就比较抓狂. 今天分享几个我在工作中用到的把程序放在后台运行的方法. nohup $ nohup --h Usage: nohup COMMAND [ARG]... or: nohup OPTION Run COMMAND, ignoring hangup signals. --help display this help and exit --version output version information and

让程序在linux后台运行的方法

常见用法: nohup ./Thriftc & > /dev/null & 在linux后台运行Thriftc程序,并将其输出重定向到空设备:/dev/null,也就是将程序输出全部丢弃. nohup COMMAND > out.log 2>&1 & 在linux后台运行COMMAND命令,将标准输出重定向到out.log文件,标准错误也重定向到out.log文件(标准错误重定向到标准输出,再将标准输出重定向到out.log). 上边的示例涉及到两个命令: