Я хочу, чтобы в системе CentOS работало несколько служб httpd, чтобы, если я разрабатываю сценарий mod_perl и мне нужно перезапустить одну из них, другие могли работать независимо. У меня была эта настройка в Windows, и я мигрирую.
Естественно, это означает отдельные файлы PID. Я настраиваю свой с помощью директивы PidFile в httpd.conf и указываю скрипт init.d на то же место. Он создает файл в порядке, но не заполняет его всеми PID:
$ sudo killall httpd ; sudo service httpd-dev restart
Stopping httpd: cat: /var/run/httpd/httpd-dev.pid: No such file or directory
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Starting httpd: [ OK ]
$ sudo cat /var/run/httpd/httpd-dev.pid
18279
$ ps -A | grep httpd
18279 ? 00:00:00 httpd
18282 ? 00:00:00 httpd
18283 ? 00:00:00 httpd
18284 ? 00:00:00 httpd
18285 ? 00:00:00 httpd
18286 ? 00:00:00 httpd
18287 ? 00:00:00 httpd
18288 ? 00:00:00 httpd
18289 ? 00:00:00 httpd
...почему это может быть? Затрудняет уничтожение только моих процессов dev httpd позже, когда появятся другие httpd. Нельзя вечно использовать killall...
$ httpd -v
Server version: Apache/2.2.24 (Unix)
Я должен отметить, что минимальная версия CentOS 6.4 не поставлялась с установленным killproc
, поэтому я изменил свой init.d, чтобы использовать
kill -9 `cat ${pidfile}`
вместо. Я предполагаю, что killproc будет искать дочерние PID? Итак, мне нужно установить python, чтобы установить killproc, чтобы использовать сценарии инициализации для httpd?