linux 后台运行命令 nohup命令
转载:http://if.ustc.edu.cn/~ygwu/blog/archives/000538.html
2005年04月18日
简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止。
要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过),比较麻烦;另一种方法是仍然用普通方法编程,然后用nohup命令启动程序:
nohup <程序名> &
则控制台logout后,进程仍然继续运行,起到守护进程的作用(虽然它不是严格意义上的守护进程)。
使用nohup命令后,原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用,实现了完整的守护进程功能。
For example:
如何远程启动WebLogic服务?
用telnet远程控制服务器,远程启动WEBLOGIC服务,启动后关闭telnet,WebLogic服务也跟着停止,这是因为使用telnet启动的进程会随着telnet进程的关闭而关闭。所以我们可以使用一些UNIX下的命令来做到不关闭。
使用如下命令:
nohup startWeblogic.sh&
如果想要监控标准输出可以使用:
tail -f nohup.out
FreeBSD可以同时运行多个进程,在shell下直接输入命令后,shell将进程放到前台执行。如果要将进程放到后台执行,需要在命令行的结尾加上一个 “&” 符号。下面的命令从后台执行,从ftp.isc.org下载文件。
$ fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &
当程序已经在前台执行的时候,可以使用^Z将这个程序挂起,暂停执行。然后可以使用bg命令将这个挂起的程序放到后台执行,或者使用fg将某个在后台或挂起的进程放到前台执行。
当在后台运行了程序的时候,可以用jobs命令来查看后台作业的状态。在有多个后台程序时,要使用来参数的fg命令将不同序号的后台作业切换到前台上运行。
$ jobs
[1]+ Running fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &
$ fg %1
fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz
在启动了多个程序之后,可以使用ps命令来查看这些进程及其状态。
$ ps
PID TT STAT TIME COMMAND
501 p2 Ss 0:00.24 -bash (bash)
988 p2 R+ 0:00.00 ps
765 p3 Is+ 0:00.28 -bash (bash)
230 v0 Is+ 0:00.14 -bash (bash)
显示的结果包括进程的标识号PID,控制终端TT(p0表示控制终端为ttyp0),进程的状态STAT,进程使用的处理器时间TIME和具体的命令。
可以给ps命令加上参数,来获得更多的输出内容,以下命令将输出系统中所有的进程:
$ ps waux
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
wb 989 0.0 0.4 400 236 p2 R+ 5:48PM 0:00.00 ps -aux
root 1 0.0 0.1 496 72 ?? Is 10:12PM 0:00.02 /sbin/init --
root 2 0.0 0.0 0 0 ?? DL 10:12PM 0:07.05 (pagedaemon)
root 3 0.0 0.0 0 0 ?? DL 10:12PM 0:00.20 (vmdaemon)
root 4 0.0 0.0 0 0 ?? DL 10:12PM 0:04.27 (syncer)
root 27 0.0 0.0 204 0 ?? IWs - 0:00.00 (adjkerntz)
root 91 0.0 0.5 820 328 ?? Is 2:12PM 0:00.82 syslogd
daemon 100 0.0 0.0 792 0 ?? IWs - 0:00.00 (portmap)
root 131 0.0 0.3 864 164 ?? Is 2:12PM 0:00.06 inetd
root 134 0.0 0.3 980 192 ?? Is 2:12PM 0:00.11 cron
root 138 0.0 0.6 1252 380 ?? Is 2:12PM 0:00.11 sendmail: accepti
wb 230 0.0 1.1 1540 668 v0 Is+ 2:12PM 0:00.14 -bash (bash)
root 231 0.0 0.0 824 0 v1 IWs+ - 0:00.00 (getty)
root 232 0.0 0.0 824 0 v2 IWs+ - 0:00.00 (getty)
root 500 0.0 0.9 876 524 ?? Ss 4:19PM 0:01.78 telnetd
wb 501 0.0 1.4 1540 888 p2 Ss 4:19PM 0:00.24 -bash (bash)
root 698 0.0 1.5 1644 900 ?? Is 4:49PM 0:00.02 /usr/local/sbin/s
root 700 0.0 1.2 1308 748 ?? Ss 4:49PM 0:00.22 /usr/local/sbin/n
root 702 0.0 3.4 2900 2112 ?? S 4:49PM 0:00.32 /usr/local/sbin/s
root 764 0.0 0.9 880 540 ?? Is 5:10PM 0:00.22 telnetd
wb 765 0.0 1.7 1536 1052 p3 Is+ 5:10PM 0:00.28 -bash (bash)
root 0 0.0 0.0 0 0 ?? DLs 10:12PM 0:00.02 (swapper)
当用户启动一个进程的时候,这个进程是运行在前台,使用与相应控制终端相联系的标准输入、输出进行输入和输出。即使将进程的输入输出重定向,并将进程放在后台执行,进程仍然和当前终端设备有关系。正因为如此,在当前的登录会话结束时,控制终端设备将和登录进程相脱离,那么系统就向所有与这个终端相联系的进程发送SIGHUP的信号,通知进程线路已经挂起了,如果程序没有接管这个信号的处理,那么缺省的反应是进程结束。因此普通的程序并不能真正脱离登录会话而运行进程,为了使得在系统登录后还可以正常执行,只有使用命令nohup来启动相应程序。
从上面的ps的输出结果可以看出,有些程序没有控制终端,这些程序通常是一些后台进程。使用命令nohup当然可以启动这样的程序,但nohup启动的程序在进程执行完毕就退出,而常见的一些服务进程通常永久的运行在后台,不向屏幕输出结果。在Unix中这些永久的后台进程称为守护进程(daemon)。守护进程通常从系统启动时自动开始执行,系统关闭时才停止。如果偶然某个守护进程消失了,那么它提供的服务将不再能被使用。
在守护进程中,最重要的一个是超级守护进程inetd,这个进程接管了大部分网络服务,但并不是对每个服务都自己进行处理,而是依据连接请求,启动不同的服务程序与客户机打交道。inetd支持网络服务种类在它的设置文件/etc/inet.conf中定义。inet.conf文件中的每一行就对应一个端口地址,当inetd接受到连接这个端口的连接请求时,就启动相应的进程进行处理。使用inetd的好处是系统不必启动很多守护进程,从而节约了系统资源,然而使用inetd启动守护进程相应反应会迟缓一些,不适合用于被密集访问的服务进程
lu
linux 后台运行命令 nohup命令的更多相关文章
- linux后台运行相关命令
1.nohup & 让程序后台运行,nohup 命令 & 2.jobs 查看当前有多少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, ...
- 后台运行程序nohup的使用
linux后台运行程序 nohup python3 test.py >output 2>&1 & 参数解释 用途:不挂断地运行命令. 语法:nohup Command [ ...
- 菜鸟学Linux命令:nohup命令启动程序
在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程,比较麻烦:另一种方法是仍然用普 ...
- linux后台运行之screen和nohup
3.1 nohup命令 如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令. 该命令可以在你退出帐户/关闭终端之后继续运行相应的进程. nohup就是不挂起的意 ...
- 2016-09-19: linux后台运行
linux后台运行命令两种方式: 1. command & : 后台运行,你关掉终端会停止运行 2. nohup command & : 后台运行,你关掉终端也会继续运行 简介 L ...
- Linux后台运行程序
Linux后台运行程序 最近写的程序需要部署到Linux服务器上,按照以前的方式,在运行后面增加&,程序会切换为后台运行.但因为Linux一般是通过ssh远程登录的,等到退出当前session ...
- linux===linux后台运行和关闭、查看后台任务(转)
fg.bg.jobs.&.ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的 一.& 最经常被用到这个用在一个命令的最后,可以把这个命令放 ...
- Linux后台运行和关闭程序、查看后台任务
fg.bg.jobs.&.ctrl+z 1.& (最经常被用到) 这个用在一个命令的最后,可以把这个命令放到后台执行 2.ctrl + z 可以将一个正在 ...
- PYTHON的程序在LINUX后台运行
1.nohup 命令 nohup nohup 命令 用途:LINUX命令用法,不挂断地运行命令. 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运 ...
- 大数据开发-linux后台运行,关闭,查看后台任务
在日常开发过程中,除了例行调度的任务和直接在开发环境下比如Scripts,开发,很多情况下是shell下直接搞起(小公司一般是这样),看一下常见的linux后台运行和关闭的命令,这里做一个总结,主要包 ...
随机推荐
- FPGA学习笔记之格雷码、边沿检测、门控时钟
一.格雷码 格雷码的优点主要是进位时只有一位跳变,误码率低. 1.二进制转格雷码 我们观察下表: 二进制码 格雷码 00 00 01 01 10 11 11 10 二进制码表示为B[],格雷码表示为G ...
- SEO之HTML优化:让你的网站HTML代码更符合SEO规范
摘要HTML优化是网站内部优化的重点,可能对SEO新手来说,容易忽略.符合搜索引擎习惯的HTML代码是极利于SEO的,可以让你的网站获得更好的搜索引擎排名.如何制作一个标准的HTML网页,如何做HTM ...
- 12月07日《奥威Power-BI智能分析报告制作方法 》腾讯课堂开课啦
前几天跟我一个做报表的哥们聊天,听着他一茬一茬地诉苦:“每天做报表做到想吐,老板看报表时还是不给一个好脸色.”我也只能搬出那一套“过程大于结果”的内心疗程赠与他,没想到他反而怒了:“做 ...
- k近邻算法的Java实现
k近邻算法是机器学习算法中最简单的算法之一,工作原理是:存在一个样本数据集合,即训练样本集,并且样本集中的每个数据都存在标签,即我们知道样本集中每一数据和所属分类的对应关系.输入没有标签的新数据之后, ...
- Java基础必备 -- 堆栈、引用传值、垃圾回收等
在Java中,对象作为函数参数的传递方式是值传递还是引用传递?String str = "abc" 与 String str = new String("abc&quo ...
- 再叙TIME_WAIT
之所以起这样一个题目是因为很久以前我曾经写过一篇介绍TIME_WAIT的文章,不过当时基本属于浅尝辄止,并没深入说明问题的来龙去脉,碰巧这段时间反复被别人问到相关的问题,让我觉得有必要全面总结一下,以 ...
- 计划将项目中使用entity framework的要点记录到改栏目下
ef监控sql执行性能日志.http://www.cnblogs.com/CreateMyself/p/5277681.html http://123.122.205.38/cn_sql_server ...
- Salesforce select字段的多少对性能影响巨大
Salesforce select字段的多少对性能影响巨大,第1个是select 144个字段,第2个是select 5个字段, 性能相差了7倍 "select Id,IsDeleted,M ...
- [原创]如何设计Lighthoused定位接收电路
本文使用最新出来的专用芯片TS3633 1)电路设计说明 1.电源电路 利用LM317低线性稳压芯片将5V或者12V的电源电压稳压到3.3V为TS3633提供工作电压.其中,磁珠L1主要用于抑制电源线 ...
- Centos7中源码安装Nodejs
Step 1.确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安装. [root@BobServerStation local]# yum -y install gcc gcc- ...