linux后台运行命令nohup和&的区别

1.   &的意思是在后台运行, 什么意思呢?  意思是说, 当你在执行 ./a.out & 的时候, 即使你用ctrl C,  那么a.out照样运行(因为对SIGINT信号免疫)。 但是要注意, 如果你直接关掉shell后, 那么, a.out进程同样消失。 可见, &的后台并不硬(因为对SIGHUP信号不免疫)。

2.   nohup的意思是忽略SIGHUP信号, 所以当运行nohup ./a.out的时候, 关闭shell, 那么a.out进程还是存在的(对SIGHUP信号免疫)。 但是, 要注意, 如果你直接在shell中用Ctrl C, 那么, a.out进程也是会消失的(因为对SIGINT信号不免疫)

3.  所以, &和nohup没有半毛钱的关系, 要让进程真正不受shell中Ctrl C和shell关闭的影响, 那该怎么办呢? 那就用nohua ./a.out &吧, 两全其美。

来源:https://blog.csdn.net/stpeace/article/details/76389073

https://blog.csdn.net/u011095110/article/details/78666833

原文地址:https://www.cnblogs.com/andylhc/p/9681720.html

时间: 2024-08-28 09:08:39

linux后台运行命令nohup和&的区别的相关文章

Linux实战案例(8)后台运行命令 nohup command > myout.file 2>&1

Linux命令后台运行 转自北国的雨,谢谢:http://www.cnblogs.com/lwm-1988/archive/2011/08/20/2147299.html 有两种方式:1. command & : 后台运行,你关掉终端会停止运行2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介 Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.在 Windows 上面,我们要么让一个程序作为服

linux后台运行命令

来源:http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/ 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题. nohup/setsid/& 场景: 如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证

linux后台运行&符号、nohup命令、输出重定向等使用方法

列出若干种情形,便于这几个命令及参数的理解: 在命令最后加上&符号,表示让这个进程到后台去执行,这样立刻返回到提示符状态,我们可以接着做下面的事.如:command & 但此时如果这个进程有输出,还是会显示出来,这又会干扰到我们的shell窗口.所以可以考虑把标准输出重定向到某个文件去,如:command >output & 现在清净了.但有时我们会发现后台运行的进程出错了,我们希望把错误信息也保存起来.那就用到了linux中默认定义两个变量:1指标准输出:2指错误输出,所以

linux后台执行命令:&和nohup

本文摘自https://www.cnblogs.com/zzyoucan/p/7764590.html 当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件.对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨).为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用. & 当在前台运行某个作业时,终端被该作业占据:可以在命令后面加上& 实现后台运行.例如:sh test.sh

linux后台执行命令:&与nohup的用法

& 这种方法很简单,就是在命令之后加个“&”符号就可以了,如下: ./test & 这样一来,test程序就在后台运行了.但是,这样处理还不够,因为这样做虽然程序是在后台运行了,但log依然不停的输出到当前终端.因此,要让终端彻底的清静,还应将log重定向到指定的文件: ./test >> out.txt 2>&1 & 2>&1是指将标准错误重定向到标准输出,于是标准错误和标准输出都重定向到指定的out.txt文件中,从此终端彻底清静

Linux后台运行

有两种方式: 1. command & : 后台运行,你关掉终端会停止运行2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介 Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和bg 命令,让你轻松调度正在运行的任务.假设你发现前台运行的

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

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

Linux批量运行命令

需求: 要在Linux下面执行很多条命令,并且每条命令执行的时间会很长. 解决办法: 编写一个sh脚本,将多条命令放入到此脚本中,执行执行脚本就可以了. 例: test.sh Linux代码   #!/bin/sh java -classpath :/home/javaliujie/mysql-connector-java-3.1.12-bin.jar:/home/javaliujie/myLib.jar: cn.com.TestMain 20090201 java -classpath :/h

windows下cmd命令提示符下让程序后台运行命令

如果你的程序需要在windows后台运行,并且是在cmd下启动,那么在执行的程序前加上start /b,比如start /b [程序名]. windows下start命令的详细参数及功能介绍如下: 文章来源 www.169it.com 启动一个单独的窗口运行指定的程序或命令. START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /