我们遇到的问题是同时运行2个羊群进程。问题是删除了两个进程中最早的文件标识符,但未关闭羊群进程。两个过程:
root 14557 0.0 0.0 7020 668 ? S Jul05 0:00 flock -n [lock file] -c sudo -u www-data php [worker script] >> [log file] 2>&1
root 14786 0.0 0.0 7020 704 ? S Jul05 0:00 flock -n [lock file] -c sudo -u www-data php [worker script] >> [log file] 2>&1
文件描述符:
[user]@[host]:~$ sudo ls -al /proc/14557/fd
total 0
dr-x------ 2 root root 0 Jul 6 10:06 .
dr-xr-xr-x 9 root root 0 Jul 6 10:04 ..
lr-x------ 1 root root 64 Jul 6 10:06 0 -> /dev/null
l-wx------ 1 root root 64 Jul 6 10:06 1 -> /dev/null
l-wx------ 1 root root 64 Jul 6 10:06 2 -> pipe:[2099949769]
lr-x------ 1 root root 64 Jul 6 10:06 3 -> [lock file] (deleted)
[user]@[host]:~$ sudo ls -al /proc/14786/fd
total 0
dr-x------ 2 root root 0 Jul 6 10:07 .
dr-xr-xr-x 9 root root 0 Jul 6 10:04 ..
lr-x------ 1 root root 64 Jul 6 10:07 0 -> /dev/null
l-wx------ 1 root root 64 Jul 6 10:07 1 -> /dev/null
l-wx------ 1 root root 64 Jul 6 10:07 2 -> pipe:[2099952982]
lr-x------ 1 root root 64 Jul 6 10:07 3 -> [lock file]
问题是-可能是什么原因造成的?如何预防呢?为什么文件描述符被删除,或者为什么羊群进程无法关闭。