- 浏览: 4754279 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
bzhao:
你也应该可以这样:(not tested)./rbtunnel ...
在Bash脚本中怎么关闭文件描述符? -
bzhao:
如果有A进程原代码情况下,通过如下调用,把他的子进程继承关闭则 ...
在Bash脚本中怎么关闭文件描述符? -
Master-Gao:
楼主咋没分析下源码呢?
我使用过的Linux命令之dirname - 截取给定路径的目录部分 -
jiedushi:
tail -F 就可以吧
Linux下实时跟踪log4j日志文件的bash脚本 - 增强了tail -f的功能 -
java_is_new:
新手学习了,就是不明白为一个网卡配多个ip有什么用
我使用过的Linux命令之ifconfig - 网络配置命令
我使用过的Linux命令之nohup - 执行其他命令,并且忽略SIGHUP信号
本文链接:http://codingstandards.iteye.com/blog/835536 (转载请注明出处)
用途说明
nohup命令可以用来执行其他命令,并且忽略SIGHUP信号(run a command immune to hangups, with output to a non-tty。Run COMMAND, ignoring hangup signals.)当一个虚拟终端的网络连接断开时,操作系统向正在运行的程序发送SIGHUP信号(HUP = HangUP、挂断),默认情况下这个信号将使程序退出。
nohup命令通常用来把一个程序在后台来运行(需要&来配合),另外一个命令setsid也可以做到,如果系统中安装了screen,可以用screen来管理那些需要长时间运行的任务。本文后面提供的相关资料很详细的说明了这些命令,你也可以参考本系列之《我使用过的Linux命令之screen - 虚拟终端屏幕管理器 》。
常用参数
常用格式如下:
nohup command [arg] ... &
运行命令command,忽略SIGHUP信号,后台执行。输出信息会保存到nohup.out文件中。`nohup' runs the given COMMAND with hangup signals ignored, so that the command can continue running in the background after you log out.
nohup COMMAND [ARG]...
以下内容来自 info nohup。
如果标准输入是终端,将被重定向为/dev/null。(If standard input is a terminal, it is redirected from `/dev/null' so that terminal sessions do not mistakenly consider the terminal to be used by the command. This is a GNU extension; programs intended to be portable to non-GNU hosts should use `nohup COMMAND [ARG]... </dev/null' instead.)
如果标准输出是终端,将被重定向到nohup.out,采用追加模式,如果这个文件不能写,就重定向到$HOME/nohup.out文件。(If standard output is a terminal, the command's standard output is appended to the file `nohup.out'; if that cannot be written to, it is appended to the file `$HOME/nohup.out'; and if that cannot be written to, the command is not run. Any `nohup.out' or `$HOME/nohup.out' file created by `nohup' is made readable and writable only to the user, regardless of the current umask settings.)
如果标准错误是终端,将被输出到标准输出同样的文件中。( If standard error is a terminal, it is redirected to the same file descriptor as the (possibly-redirected) standard output.)
nohup命令不会自动将命令后台运行,所以你必须自己在命令后面加上&,把命令变成后台执行。( `nohup' does not automatically put the command it runs in the background; you must do that explicitly, by ending the command line with an `&'. Also, `nohup' does not alter the niceness of COMMAND; use `nice' for that, e.g., `nohup nice COMMAND'.)
要注意的是,跟在nohup后面的命令不能是内建命令。(COMMAND must not be a special built-in utility (*note Special built-in utilities::).)
退出码:(Exit status: 126 if COMMAND is found but cannot be invoked,127 if `nohup' itself fails or if COMMAND cannot be found,the exit status of COMMAND otherwise)
使用示例
示例一 后台执行命令并跟踪输出
[root@new55 test3]# nohup spider & tail -f nohup.out
[1] 18162
UUUUUUU [http://news.sina.com.cn/w/2010-09-20/084518138839s.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-20/090817680377s.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-18/164717673976s.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-18/075520496242.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-18/031720494028.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-18/101720497276.shtml]
UUUUUUU [http://i1.sinaimg.cn/dy/2010/0624/S12709T1277336424126.jpg]
UUUUUUU [hthttp://blog.sina.com.cn/s/blog_4a3131f00100j4d9.html?tj=1]
url=[hthttp://blog.sina.com.cn/s/blog_4a3131f00100j4d9.html?tj=1] schema[hthttp]
spider: test8.cpp:1051: int extract_url(const std::string&, PageInfo&, UrlPosMap&): Assertion `false' failed.
nohup: appending output to “nohup.out”
load spider.xml ok
<spider>
<start>
<url>http://www.sina.com.cn/</url>
</start>
<accept>
<prefix>http://www.sina.com.cn/</prefix>
<prefix>http://news.sina.com.cn/</prefix>
</accept>
<ignore>
<type>IMG</type>
</ignore>
</spider>
start node found
url http://www.sina.com.cn/
accept node found
prefix http://www.sina.com.cn/
prefix http://news.sina.com.cn/
ignore node found
type IMG
问题思考
相关资料
【1】einit 用nohup命令让Linux下程序永远在后台执行
【2】IBM Linux 技巧:让进程在后台可靠运行的几种方法
【3】IBM 学习 Linux,101: 创建、监控和终止进程
【4】IBM linux 技巧:使用 screen 管理你的远程会话
发表评论
-
在Linux用tar归档压缩文件时忽略某些文件和目录
2013-02-01 10:19 17053在Linux下,常用tar对文 ... -
使用nmap扫描服务器端口的一次操作
2012-11-01 17:00 15139使用nmap扫描服务器端口的一次操作 本文来自:http ... -
我使用过的Linux命令之wget - ooo
2011-09-14 13:10 0我使用过的Linux命令之wg ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:53 9149简明 Vim 练级攻略 http://coolshell.c ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:49 1简明 Vim 练级攻略 http://coolshell.c ... -
我使用过的Linux命令之:(冒号) - 啥也不做(除了……)
2011-08-29 13:18 12101我使用过的Linux命令之: ... -
我使用过的Linux命令之date - 显示、修改系统日期时间
2011-08-25 09:21 41985我使用过的Linux命令之da ... -
我使用过的Linux命令之declare - 声明shell变量(不知道没关系、知道了就更好的内建命令)
2011-08-16 09:22 21831我使用过的Linux命令之declare - 声明shell变 ... -
我使用过的Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
2011-08-11 09:31 28828我使用过的Linux命令之alias - 设置命令的别名,让 ... -
我使用过的Linux命令之ar - 创建静态库.a文件
2011-08-08 10:40 51934我使用过的Linux命令之ar - 创建静态库.a文件 本 ... -
我使用过的Linux命令之crontab - 设置例行任务(类似于Windows中的任务计划)
2011-08-04 22:26 9752我使用过的Linux命令之crontab - 设置例行任务(类 ... -
我使用过的Linux命令之chmod - 改变文件/目录的访问权限
2011-08-03 21:33 10706我使用过的Linux命令之chmod - 改变文件/目录的访问 ... -
我使用过的Linux命令之export - 设置或显示环境变量
2011-08-02 19:55 25441我使用过的Linux命令之export - 设置或显示环境变量 ... -
我使用过的Linux命令之wc - 统计文件行数、单词数或字节数
2011-07-26 10:50 29018我使用过的Linux命令之wc - 统计文件行数、单词数或字节 ... -
我使用过的Linux命令之groupdel - 删除群组
2011-07-22 22:13 9693我使用过的Linux命令之gr ... -
我使用过的Linux命令之ifconfig - 网络配置命令
2011-07-21 20:43 60552我使用过的Linux命令之ifconfig - 网络配置命令 ... -
我使用过的Linux命令之ll - 列出文件/目录的详细信息
2011-07-20 21:22 7209我使用过的Linux命令之ll ... -
我使用过的Linux命令之mkdir - 创建目录
2011-07-20 20:58 13686我使用过的Linux命令之mkdir - 创建目录 本文链 ... -
我使用过的Linux命令之perror - 解释错误代码
2011-07-18 20:29 25081我使用过的Linux命令之perror - 解释错误代码 ... -
我使用过的Linux命令之ping - 测试与目标主机的连通性
2011-07-16 10:46 26615我使用过的Linux命令之ping - 测试与目标主机的连通性 ...
相关推荐
使用`nohup`可以忽略这一信号,确保进程持续运行。 - **场景三:远程操作** - 在进行远程登录操作时,如果网络连接意外中断,使用`nohup`启动的进程仍能继续运行,不会受到影响。 #### 命令语法与参数: `nohup`的...
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令...
`nohup`命令的主要作用是使程序忽略SIGHUP(挂断)信号。当用户退出登录会话时,系统通常会发送SIGHUP信号给所有属于该会话的进程,导致它们终止。通过使用`nohup`,我们可以确保即使用户退出,程序也不会因为收到...
- **在后台运行一个命令并忽略 SIGHUP 信号**: ```bash nohup command & ``` 以上内容涵盖了`chmod`命令的详细使用方法,包括其基本语法、符号和数字模式以及特殊权限位等。同时简要介绍了`chown`命令和`nohup`...
`nohup` 命令会忽略 SIGHUP 信号,使得进程即使在用户退出登录后仍然能够继续运行。同时,`nohup` 还会创建一个名为 `nohup.out` 的文件,用来记录进程的标准输出。 #### 2. 使用 `setsid` 命令 另一种绕过 SIGHUP...
- `nohup`:让命令在后台运行并忽略SIGHUP信号。 10. **系统设置和配置**: - `/etc/passwd` 和 `/etc/shadow`:用户账户信息。 - `/etc/group`:用户组信息。 - `/etc/inittab`:初始化系统运行级别。 - `/...
或者,使用`nohup`命令,如`nohup command &`,可以忽略SIGHUP信号,即使终端关闭,进程也会继续运行,其输出会被重定向到`nohup.out`文件。 除了上述方法,还有两个流行的工具——`Screen`和`Tmux`,它们提供了更...
使用 nohup 命令可以使进程忽略 SIGHUP 信号,在关闭窗口或断开连接后,进程不会被杀掉。 * 方法二:screen 使用 screen 可以创建一个可以在多个进程间多路复用一个物理终端的窗口管理器。 Screen 的使用方法: 1....
`nohup`是“no hang up”的缩写,它使得命令在后台运行并且忽略挂断(SIGHUP)信号。当你在终端中使用`nohup command`来启动一个任务时,即使你关闭了终端,该任务也会继续执行。默认情况下,`nohup`会将标准输出...
可以在执行命令最后加上 & 符号,使得启动的程序忽略 sigint 信号,但当屏幕关闭、断网仍然会造成进程退出。例如: sh test.sh & 2. 使用 nohup 指令 nohup(no hang up)指令可以使命令永久执行下去,和用户终端...
- `nohup` 命令可以让进程忽略挂断信号(SIGHUP),这意味着即使用户退出登录,被 `nohup` 启动的进程也会继续运行。 - `setsid` 命令可以创建一个新的会话,并将进程放入其中,这样可以确保进程不会受到终端会话的...
使用`nohup`,进程将忽略`SIGHUP`信号,即使你关闭了终端,进程也会继续运行。默认情况下,`nohup`会将输出重定向到`nohup.out`文件,除非你另有指定。 在"background execution commands.pdf"中,详细地阐述了这些...
这会忽略挂断信号(SIGHUP),让命令持续运行,其输出会被重定向到`nohup.out`文件,除非另有指定。 熟练运用这些技巧,可以显著提高Linux系统的效率,尤其是在处理大量数据或长时间运行的进程时。在日常操作中,...
当您在命令行中运行`nohup`时,它会忽略所有挂断信号(SIGHUP),即使用户退出终端,程序也会继续运行。这对于长时间运行的Python脚本尤其有用,例如在进行大数据处理、机器学习训练或持续服务提供时。 在标题和...
1. 使用`nohup`命令:这是一种简单的实现方式,可以将命令放在`nohup`后面,使其在后台运行并忽略SIGHUP信号。 2. 自己编写代码实现:通过编程语言(如C、Python等)实现上述步骤,使程序成为守护进程。 3. 使用工具...
`nohup`命令可以解决这个问题,它使进程忽略SIGHUP信号,继续在后台运行。但`nohup`仅适用于非交互式的命令,如果需要在远程会话中进行交互操作,它就显得力不从心了。 这就是`screen`工具发挥作用的地方。`screen`...
nohup通过忽略HUP信号实现进程的后台运行,而setsid则通过创建新的会话使得进程不受终端影响。根据具体需求,可以选择合适的方法,或者组合使用,以保证进程的稳定性和持久性。在实际操作中,应根据任务的性质和预期...
`nohup`命令的作用是忽略SIGHUP信号,使进程不会因终端断开而结束。 总结来说,守护进程是Linux系统中不可或缺的一部分,它们在后台默默运行,为用户提供各种服务。理解其工作原理和管理方法对于维护和优化系统性能...