nohup
命令运行的后台进程,可以使用 ps
命令结合 grep
来查找相关的进程。,,“bash,ps aux | grep 'your_command',
`,,这将显示所有包含
your_command` 的进程信息。Linux nohup查看
一、nohup命令
Linux中的nohup命令用于在后台运行程序,即使终端关闭后也能继续执行,它常与&符号结合使用,将任务置于后台运行。
1. nohup命令的基本用法
语法:nohup Command [ Arg ... ] &
示例:nohup python myfile.py &
2. 输出重定向
默认情况下,nohup会将输出附加到当前目录的nohup.out文件中,如果需要指定输出文件,可以使用重定向操作符。
示例:nohup python myfile.py > myresult.out 2>&1 &
二、查看nohup后台进程
要查看和管理nohup启动的后台进程,可以使用ps和jobs命令。
1. jobs命令
jobs命令可以查看当前shell中所有后台作业的状态,但仅限于当前终端。
语法:jobs
示例:
root@localhost test]# jobs [1] 运行中 nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 & [2]+ 运行中 nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 &
2. ps命令
ps命令用于查看系统中的所有进程,适用于查看其他终端或用户的进程。
语法:ps -aux | grep 进程关键字
示例:
root@localhost test]# ps -aux | grep java root 21219 0.3 3.9 6258172 148900 pts/0 Sl 10:08 0:02 java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar root 21662 0.2 3.0 5041008 116648 pts/0 Sl 10:10 0:01 java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar root 23761 0.0 0.0 112664 972 pts/0 S+ 10:19 0:00 grep --color=auto java
三、终止nohup后台进程
可以通过jobs或ps命令获取进程号(PID),然后使用kill命令终止进程。
1. 通过jobs命令查看并终止
语法:kill %jobnum
示例:
root@localhost test]# jobs [1] 运行中 nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar [2]+ 运行中 nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar root@localhost test]# kill %1
2. 通过ps命令查看并终止
语法:kill 进程号
示例:
root@localhost test]# ps -aux | grep java root 21219 0.3 3.9 6258172 148900 pts/0 Sl 10:08 0:02 java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar root 21662 0.2 3.0 5041008 116648 pts/0 Sl 10:10 0:01 java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar root 23761 0.0 0.0 112664 972 pts/0 S+ 10:19 0:00 grep --color=auto java root@localhost test]# kill 21219
四、常见FAQs
Q1: nohup生成的文件在哪里?
nohup命令会将输出默认追加到当前目录的nohup.out文件中,如果当前目录不可写,则输出会被重定向到$HOME/nohup.out文件中,如果没有文件能创建或打开以用于追加,那么Command参数指定的命令不可调用。
Q2: 如果某个进程起不来,可能是哪个端口被占用了?如何查找并杀掉该进程?
可以使用lsof或netstat命令查看特定端口的使用情况,找到占用端口的进程后,使用kill命令终止该进程。
查看端口占用情况:
lsof -i:8090 netstat -ap|grep 8090
杀死占用端口的进程:
netstat -nap|grep 7779 kill <进程号>
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1259002.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复