天天看点

2.nohup和&后台运行,进程查看及终止

1.nohup和&

语法:nohup Command [ Arg … ] [& ]

nohup:不挂断地运行命令

&:在后台运行

示例:nohup java -jar app2.jar >app2.txt &

>app2.txt 是将command的输出重定向到app2.txt 文件,即输出内容不打印到屏幕上,而是输出到app2.txt 文件中。

2.查看运行的后台进程

(1)jobs -l

jobs命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)

(2)ps -ef 

用ps -def | grep查找进程很方便,最后一行总是会grep自己

示例:ps -ef | grep jar | grep -v grep

注:用grep -v参数可以将grep命令排除掉

(3)ps -aux

a:显示所有程序

u:以用户为主的格式来显示

x:显示所有程序,不以终端机来区分

示例:ps -aux|grep chat.js| grep -v grep

(4)awk 输出列

示例:ps -aux|grep chat.js| grep -v grep | awk \'{print $2}\'

(5)如果某个进程起不来,可能是某个端口被占用,查看使用某端口的进程

lsof -i:端口号

(6)查看正在使用某个端口号的pid

netstat -nap | grep :9080

netstat -nlp | grep :9080

(7)根据pid查看端口号

lsof -i | grep pid

netstat -nap | grep pid

3.终止后台运行的进程

kill -9  进程号

4.Linux中怎么通过PID号找到对应的进程名及所在目录

  有时候通过top命令可以看到有个别进程占用的内存比较大,但是top无法直接查看到进程名以及进程所在的目录。所以我们可以通过以下方法来定位。

首先需要知道PID号,可以通过top命令获取。

  得知PID之后可以直接进入/proc/PID

  (1)cd  /proc/PID

  (2)ls -ail

5.通过jobs命令查看后台运行任务

2.nohup和&后台运行,进程查看及终止

那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。

如果想将某个作业调回前台控制,只需要 fg + 2 (编号)即可