salt-minion dead but pid file exists解决方法


说明:

    由于自己的错误操作,导致某台salt minion机无法启动,如下:

[root@localhost run]# /etc/init.d/salt-minion status
salt-minion dead but pid file exists



解决过程:

    由报错知:

        minion进程已经死掉了,但是进程文件还在

        于是去找进程文件,在minion机的配置文件里/etc/init.d/salt-minion里发现进程文件是:/var/run/salt-minion.pid

        然后尝试把进程文件删掉,再重新启动:

[root@localhost run]# /etc/init.d/salt-minion restart
Stopping salt-minion daemon:                               [FAILED]
Starting salt-minion daemon:                               [  OK  ]
[root@localhost run]# /etc/init.d/salt-minion status
salt-minion dead but pid file exists

        仍然没有解决问题


    然后换思路去解决问题:

        找到minion的启动文件/etc/init.d/salt-minion

        把里面的启动和关闭过程看了一遍,里面有几句关键地方,如下:

. /etc/rc.d/init.d/functions

PROCESS=salt-minion

killproc $PROCESS

        找到了解决方法:

            首先把/etc/rc.d/init.d/functions这个文件看了一遍,发现里面有一个killproc函数

            然后自己写了一个shell脚本解决了问题,脚本内容如下:

. /etc/rc.d/init.d/functions
killproc salt-minion
##执行完shell脚本后:
[root@localhost run]# /etc/init.d/salt-minion start
Starting salt-minion daemon:                               [  OK  ]
[root@localhost ~]# /etc/init.d/salt-minion status
salt-minion (pid  15422) is running...

正常了,大功告成