要将一个命令放到后台执行,我们一般使用nohup sh command &
为什么要nohup?
因为我用使用Scrt这种终端工具退出的时候会向我们在当前shell下启动的进程发生一个SIGHUP信号,
而SIGHUP信号的默认行为时终止进程,所以nohup的意思是屏蔽SIGHUP信号。
下面我们做一个测试:
在一个窗口运行一个不带nohup的后台程序[root@limt ~]# sh Testlsof.sh > 111.log &[1] 4486[root@limt ~]# jobs[1]+ Running sh Testlsof.sh > 111.log &在另外一个窗口查看后台程序[root@limt ~]# ps -ef|grep Testlsofroot 4486 4315 0 20:11 pts/1 00:00:00 sh Testlsof.shroot 4574 4500 0 20:12 pts/0 00:00:00 grep Testlsof关闭第一个窗口,后台进程也退出[root@limt ~]# ps -ef|grep Testlsofroot 4661 4500 0 20:12 pts/0 00:00:00 grep Testlsof 在一个窗口运行一个带nohup的后台程序[root@limt ~]# nohup sh Testlsof.sh > 111.log &[1] 2710[root@limt ~]# nohup: 忽略输入重定向错误到标准输出端[root@limt ~]# jobs[1]+ Running nohup sh Testlsof.sh > 111.log &在另外一个窗口查看后台程序[root@limt ~]# ps -ef|grep Testlsofroot 2710 2664 0 20:23 pts/1 00:00:00 sh Testlsof.sh //父进程为shellroot 2794 2728 0 20:23 pts/2 00:00:00 grep Testlsof关闭第一个窗口,后台进程没有退出[root@limt ~]# ps -ef|grep Testlsofroot 2710 1 0 20:23 ? 00:00:00 sh Testlsof.sh //父进程为init进程root 3223 2728 0 20:23 pts/2 00:00:00 grep Testlsof
PS是LINUX下最常用的也是非常强大的进程查看命令
常见的使用方法是检查一个进程是否存在:
//以下这条命令是检查java 进程是否存在.
ps -ef |grep java1. ps简介
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本
同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、
进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
2. ps命令及其参数
ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设
备进行通信的,所以如果需要检测其情况,便可以使用ps命令了。
该命令语法格式如下:
ps [选项]
下面对命令选项进行说明:
-e 显示所有进程。
-f 全格式。
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上的所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。