linux pidof
转载:http://blog.51osos.com/linux/linux-pidof-command/
什么是pidof命令?
#man pidof中的解释:
pidof — find the process
ID of a running program.
pidof–用于查找一个运行的程序的PID。
pidof is actually the same
program as killall5;
[root@GoGo ~]# ls -l /sbin/pidof
lrwxrwxrwx. 1 root
root 8 Aug 25 00:40 /sbin/pidof -> killall5 //的确如此。
参数:
-s 表示只返回1个 pid
-x
表示同时返回运行给定程序的 shell 的 pid
-o 表示告诉 piod 表示忽略后面给定的 pid ,可以使用多个 -o 。
pidof is
simply a (symbolic) link to the killall5 program, which should also be located
in /sbin.
When pidof is invoked with a full pathname to the program it should
find the pid of, it is reasonably safe. Otherwise it
is possible that it
returns pids of running programs that happen to have the same name as the
program you’re after but are
actually other programs.
如果 是一个 fullpath 则
pidof 不会出错,但如果不是则有可能返回和给定同名的程序。
还是看实例吧。
[root@GoGo ~]# pidof nginx
1476 1475 1473 1472 1471 1470 1469 1467 1466
[root@GoGo ~]# ps -ef | grep nginx
nginx 1450 1449 0 20:16 ? 00:00:00 php-fpm: pool www
nginx 1451 1449 0 20:16 ? 00:00:00 php-fpm: pool www
nginx 1452 1449 0 20:16 ? 00:00:00 php-fpm: pool www
nginx 1453 1449 0 20:16 ? 00:00:00 php-fpm: pool www
nginx 1454 1449 0 20:16 ? 00:00:00 php-fpm: pool www
root 1466 1 0 20:16 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 1467 1466 0 20:16 ? 00:00:00 nginx: worker process
nginx 1469 1466 0 20:16 ? 00:00:00 nginx: worker process
nginx 1470 1466 0 20:16 ? 00:00:00 nginx: worker process
nginx 1471 1466 0 20:16 ? 00:00:00 nginx: worker process
nginx 1472 1466 0 20:16 ? 00:00:00 nginx: worker process
nginx 1473 1466 0 20:16 ? 00:00:00 nginx: worker process
nginx 1475 1466 0 20:16 ? 00:00:00 nginx: worker process
nginx 1476 1466 0 20:16 ? 00:00:00 nginx: worker process
root 2234 2141 0 20:24 pts/1 00:00:00 grep nginx
[root@GoGo ~]# ps -ef | grep nginx | awk ’{print $2}’
1450
1451
1452
1453
1454
1466
1467
1469
1470
1471
1472
1473
1475
1476
2237
[root@GoGo ~]# pidof -s nginx
1476
[root@GoGo ~]# pidof sshd
2139 1163
[root@GoGo ~]# ps -ef | grep sshd
root 1163 1 0 20:16 ? 00:00:00 /usr/sbin/sshd
root 2139 1163 0 20:20 ? 00:00:00 sshd: root@pts/1
延伸:
pgrep命令可以达到同样的效果,本主不做介绍,51开源社区之前曾详细介绍。
linux pgrep命令详解:http://bbs.51osos.com/thread-3936-1-1.html
另个pidof可以结合xargs kill 使用,如
pidof xxx | xargs kill 当然有时也可以使用killall代替。不过对于nginx可不要这样操作噢,最好还是平滑关闭。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。