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命令查看后台运行任务
那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 2 (编号)即可