При dist-upgrade: 9: spamassassin-spamd ################################################################################################### [ 75%] Service spamd is not running.[PASSED] Starting spamd service: Apr 4 09:00:54.837 [9855] warn: server socket setup failed, retry 1: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:00:55.838 [9855] warn: server socket setup failed, retry 2: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:00:56.838 [9855] warn: server socket setup failed, retry 3: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:00:57.839 [9855] warn: server socket setup failed, retry 4: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:00:58.840 [9855] warn: server socket setup failed, retry 5: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:00:59.840 [9855] warn: server socket setup failed, retry 6: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:01:00.841 [9855] warn: server socket setup failed, retry 7: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:01:01.841 [9855] warn: server socket setup failed, retry 8: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:01:02.842 [9855] warn: server socket setup failed, retry 9: spamd: could not create INET socket on 127.0.0.1:783: Address already in use Apr 4 09:01:03.843 [9855] error: spamd: could not create INET socket on 127.0.0.1:783: Address already in use spamd: could not create INET socket on 127.0.0.1:783: Address already in use [FAILED] Работа apt-а при этом не прерывается, но обновление пакета фактически не происходит, т.к. не происходит перезапуск. Демон в действительности запущен: root@visp ~ # netlist|grep :783 root 1515 /usr/bi+ 5 tcp 127.0.0.1:783 0.0.0.0:0 LISTEN root 1520 spamd c+ 5 tcp 127.0.0.1:783 0.0.0.0:0 LISTEN root 1518 spamd c+ 5 tcp 127.0.0.1:783 0.0.0.0:0 LISTEN Попробовал остановить вручную: root@visp ~ # service spamd stop Service spamd is not running.[PASSED] Нет эффекта: root@visp ~ # netlist|grep :783 root 1515 /usr/bi+ 5 tcp 127.0.0.1:783 0.0.0.0:0 LISTEN root 1520 spamd c+ 5 tcp 127.0.0.1:783 0.0.0.0:0 LISTEN root 1518 spamd c+ 5 tcp 127.0.0.1:783 0.0.0.0:0 LISTEN root@visp ~ # rpm -qf =spamd spamassassin-spamd-3.3.2-alt2 root@visp ~ # rpm -V spamassassin-spamd root@visp ~ # cat /var/run/spamd.pid 1515
аналогично #> service spamd status spamd is dead, but stale PID file exists #> cat /var/run/spamd.pid 3465 #> ps axuw | grep spam root 3465 0.0 1.5 36396 32496 ? Ss 12:12 0:05 /usr/bin/spamd -d --pidfile=/var/run/spamd.pid mail 4222 16.8 6.7 146976 139860 ? S 12:12 20:26 spamd child
Проблема или в start-stop-daemon, или в его использовании: http://lists.altlinux.org/pipermail/devel/2014-June/198779.html
В итоге, что имеем. 1. В /proc/<pid>/stat имя с пробелом: "/usr/bin/spamd " 2. Пробел передать нельзя: http://bugzilla.altlinux.org/show_bug.cgi?id=27531#c1 3. Cимлинк /proc/<pid>/exe делается на бинарник с версией (/usr/bin/perl5.18.2), потому к нему привязываться тоже нельзя. До лучших времён переписал в init-скрипте stop() и reload() с вызовом start-stop-daemon напрямую. Вроде бы работает...
spamassassin-3.4.0-alt1 -> sisyphus: * Thu Jun 19 2014 Sergey Y. Afonin <asy@altlinux> 3.4.0-alt1 - NMU: 3.4.0 (ALT #30063) - fixed start, stop, reload and status options in init.d/spamd (ALT #28789) - changed permisson for sa-update-keys directory to 700 - added lsb init header for init.d/spamd - removed /var/run/spamd directory (/var/run used for pid file) - added CHILDUSER variable and described it in the /etc/sysconfig/spamd
(In reply to comment #3) > До лучших времён переписал в init-скрипте stop() и reload() с вызовом > start-stop-daemon напрямую. Вроде бы работает... "лучшие времена" наступили: start-stop-daemon, оказывается, симлинк /usr/bin/perl тоже понимает, как /usr/bin/perl<version>