Maison  >  Questions et réponses  >  le corps du texte

linux - 如何用Shell脚本判断一个进程是否在运行?

PHP中文网PHP中文网2741 Il y a quelques jours674

répondre à tous(4)je répondrai

  • 巴扎黑

    巴扎黑2017-04-17 16:35:28

    可以串一个| grep -v grep把grep去掉

    警告: 用ps+grep找进程其实是不可扩展的,如果将来有多个匹配的进程.. 安全的方法是启动时把pid写到文件,要杀掉时从pidfile读。或者交给supervisor管理。

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 16:35:28

    linux下面,对进程进行管理的通用的做法是在进程启动时,将进程号写到文件里面,可以去/var/run/目录里面看看,里面有各种.pid文件。管理的时候,读取这个文件获得进程号。

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-17 16:35:28

    举个例子:ps -ef|grep [j]ava

    répondre
    0
  • 阿神

    阿神2017-04-17 16:35:28

    [root@nginx conf.d]# ps -aux | grep  "nginx" | grep -v "grep" 
    root       1950  0.0  0.4  47904  2232 ?        Ss   03:43   0:00 nginx: master process nginx
    nginx     13545  0.0  0.5  48336  2504 ?        S    22:27   0:00 nginx: worker process
    [root@nginx conf.d]# ps -aux | grep  "nginx" | grep -v "grep" > /dev/null
    [root@nginx conf.d]# echo $?
    0
    

    需要根据实际情况做修改

    补充一个

    [root@nginx ~]# ps -C nginx
       PID TTY          TIME CMD
      1950 ?        00:00:00 nginx
     13545 ?        00:00:00 nginx
    [root@nginx ~]# 
    

    répondre
    0
  • Annulerrépondre