it-swarm.com.de

Ubuntu php5-fpm wirft beim Neuladen eine unbekannte Instanz

Ich habe einige Probleme mit Ubuntu und PHP5-Fpm auf meiner VPS . PHP funktioniert gut, aber es wirft einen Terminalfehler, wenn ich versuche, es neu zu laden/neu starten/stoppen. Grundsätzlich kann ich PHP nicht stoppen, da die Instanz nicht erkannt wird

Es heißt "reload: Unknown instance:" Wenn ich "service php5-fpm restart" versuche, wird dies als unbekannte Instanz bezeichnet und in Protokollen angegeben

[15-Nov-2013 11:56:40] ERROR: An another FPM instance seems to already listen on /var/run/php5-fpm.sock
[15-Nov-2013 11:56:40] ERROR: FPM initialization failed
[15-Nov-2013 11:56:40] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful

Ich habe PHP auf /var/run/php5-fpm.sock zu hören; Ich benutze nginx für den Webserver und es ist korrekt mit konfiguriert 

fastcgi_pass unix:/var/run/php5-fpm.sock;

(oder so weiß ich) Außerdem muss erwähnt werden, dass dies nach einem Neustart der Fall war.

Die Website funktioniert gut, aber ich denke nicht, dass dies ein gutes Zeichen ist. Irgendwelche Gedanken? Danke.

EDIT: Ich habe wie unten im Post vorgeschlagen. Es scheint, dass wenn ich den Prozess töte und dann start/stop verwende, es gut funktioniert. Nachdem ich den Befehl zum erneuten Laden verwendet habe, wird die Instanz nicht mehr aktualisiert.

[email protected]:/# service php5-fpm stop
stop: Unknown instance:
[email protected]:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Nov14 ?        00:00:00 init
root      1101     1  0 Nov14 ?        00:00:00 /sbin/udevd --daemon
root      1168     1  0 Nov14 ?        00:00:00 /usr/sbin/sshd -D
root      1227     1  0 Nov14 ?        00:00:00 /usr/sbin/xinetd -dontfork -pidfile /var/run/xinetd.pid -stayalive -inetd_compa
root      1229     1  0 Nov14 ?        00:00:00 cron
mysql     1249     1  0 Nov14 ?        00:00:18 /usr/sbin/mysqld
syslog    1283     1  0 Nov14 ?        00:00:00 /sbin/syslogd -u syslog
memcache  1293     1  0 Nov14 ?        00:00:07 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1
root      1426     1  0 Nov14 ?        00:00:00 /usr/lib/postfix/master
postfix   1440  1426  0 Nov14 ?        00:00:00 qmgr -l -t fifo -u
root      1468     1  0 Nov14 ?        00:00:00 /usr/sbin/varnishd -P /var/run/varnishd.pid -a :80 -T localhost:6082 -f /etc/va
nobody    1469  1468  0 Nov14 ?        00:01:14 /usr/sbin/varnishd -P /var/run/varnishd.pid -a :80 -T localhost:6082 -f /etc/va
root      1593     1  0 Nov14 ?        00:00:14 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock
root      1595     1  0 Nov14 ?        00:00:00 /usr/lib/gamin/gam_server
www-data  3535     1  0 Nov14 ?        00:00:30 php-fpm: pool www
postfix  10016  1426  0 11:18 ?        00:00:00 pickup -l -t fifo -u -c
root     10064  1168  0 11:37 ?        00:00:00 sshd: [email protected]/0
root     10080 10064  0 11:37 pts/0    00:00:00 -bash
root     10143  1168  0 11:47 ?        00:00:00 sshd: [email protected]
root     10159 10143  0 11:47 ?        00:00:00 /usr/lib/openssh/sftp-server
root     11330     1  0 12:03 ?        00:00:00 nginx: master process /usr/sbin/nginx
www-data 11331 11330  0 12:03 ?        00:00:00 nginx: worker process
www-data 11332 11330  0 12:03 ?        00:00:00 nginx: worker process
www-data 11333 11330  0 12:03 ?        00:00:00 nginx: worker process
www-data 11334 11330  0 12:03 ?        00:00:00 nginx: worker process
root     11465  1168  0 12:14 ?        00:00:00 sshd: [email protected]
root     11481 11465  0 12:14 ?        00:00:00 /usr/lib/openssh/sftp-server
root     11519 10080  0 12:23 pts/0    00:00:00 ps -ef
[email protected]:/# kill 3535
[email protected]:/# service php5-fpm start
php5-fpm start/running, process 11529
[email protected]:/# service php5-fpm stop
php5-fpm stop/waiting
[email protected]:/# service php5-fpm start
php5-fpm start/running, process 11544
[email protected]:/# service php5-fpm stop
php5-fpm stop/waiting
[email protected]:/# service php5-fpm start
php5-fpm start/running, process 11559
[email protected]:/# service php5-fpm reload
[email protected]:/# service php5-fpm reload
reload: Unknown instance:

Edit 2: Mein PHP 5 scheint 3 Prozesse zu erzeugen

root     11813     1  1 12:34 ?        00:00:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 11815 11813  0 12:34 ?        00:00:00 php-fpm: pool www
www-data 11816 11813  0 12:34 ?        00:00:00 php-fpm: pool www

Wenn ich die Reload-Funktion verwende, verschwindet der Master-Prozess und ich muss die beiden anderen Prozesse manuell beenden, um ihn wieder korrekt starten zu können.

29
Iulian

Dies ist ein Ubuntu-Fehler. In /etc/init/php5-fpm.conf gibt es eine auskommentierte Zeile reload signal USR2, die bewirkt, dass die reload-Funktion den php5-fpm-Masterprozess durch Senden von SIGHUP beendet. Alle weiteren Neuladen, Neustarts oder Stopps werden fehlschlagen, da der Masterprozess beendet wurde.

Ich habe dies in Ubuntu 14.04 behoben, indem ich eine Datei /etc/init/php5-fpm.override mit der einzelnen Zeile reload signal USR2 darin erstellt habe. Dank an Jurian Sluimans Kommentar in diese Antwort .

Hier ist der primäre Fehlerbericht , vorgeschlagene Abhilfemaßnahmen und Bestätigung der Abhilfe .

$ ps aux | grep php
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1966  0.0  0.9 473276 37040 ?        Ss   10:03   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)                    
www-data  2009  0.0  1.5 478280 62500 ?        S    10:03   0:01 php-fpm: pool www                                                       
www-data  2011  0.0  1.3 476504 55220 ?        S    10:03   0:00 php-fpm: pool www                                                       
www-data  2012  0.0  1.6 481592 65840 ?        S    10:03   0:00 php-fpm: pool www

$ Sudo service php5-fpm status
php5-fpm start/running, process 1966

$ Sudo service php5-fpm stop
php5-fpm stop/waiting

$ Sudo service php5-fpm status
php5-fpm stop/waiting

$ Sudo service php5-fpm start
php5-fpm start/running, process 2651

$ Sudo service php5-fpm status
php5-fpm start/running, process 2651

$ ps aux | grep php
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2651  0.2  0.9 473276 36996 ?        Ss   10:35   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)                    
www-data  2654  0.0  0.1 473276  7104 ?        S    10:35   0:00 php-fpm: pool www                                                       
www-data  2655  0.0  0.1 473276  7104 ?        S    10:35   0:00 php-fpm: pool www                                                       
www-data  2656  0.0  0.1 473276  7104 ?        S    10:35   0:00 php-fpm: pool www
42
keithm

Normalerweise funktioniert der Befehl service gut:

service php5-fpm restart

Wenn jedoch das Problem "unbekannte Instanz" auftritt, können Sie einfach die Prozesse beenden und den Dienst neu starten.

Sudo pkill php5-fpm; Sudo service php5-fpm start
32
BurninLeo

Versuchen Sie, Ihre php5-fpm-Instanz erneut mit service php5-fpm stop zu beenden. Warten Sie einige Sekunden. Versuchen Sie herauszufinden, welche Prozesse nicht mit ps -ef beendet wurden. Beenden Sie sie mit kill <processId>. Starten Sie php5-fpm erneut . Es scheint, dass nicht alle untergeordneten Prozesse ordnungsgemäß mit service ...-Befehl ..__ beendet wurden. Ich habe ähnliche Probleme mit dem Server, aber sie sind nicht regelmäßig

10
Mihail

Ich habe das gleiche Problem mit ENVOYER FOR LARAVEL erlebt - und das war ziemlich ärgerlich. Meine Lösung bestand darin, Option 3 zu folgen: https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1242376/comments/16

Erstellen Sie die Datei /etc/init/php5-fpm.override mit der einzeiligen Zeile "reload signal USR2".

5

Die Bereitstellung bei Envoyer brachte mich hierher. Am Ende fügte ich der Activate New Release-Aktion mit dem pkill php5-fpm-Prozess einen 'before'-Implementierungshaken hinzu

2
Graham T

Die Option, die für mich funktionierte, war das Zurücksetzen von Opcache. Erstellen Sie eine Datei opcache-reset.php in Ihrem Site-Stamm und fügen Sie Folgendes hinzu:

<?php opcache_reset(); ?>

Nach dem Zurücksetzen von opcache können Sie die Datei löschen oder aus dem Site-Stamm verschieben.

1
Kevin

Scheint, als ob der Befehl service manchmal fehlschlägt. Ich weiß nicht, aus welchem ​​Grund ich diese Problemumgehung in /etc/logrotate.d/php5-fpm verwendet habe:

/var/log/php5-fpm.log {
    ...
    postrotate
        # The original reload command did never work
        #invoke-rc.d php5-fpm reopen-logs > /dev/null

        # Workaround for cases when the reload command fails for some reason
        service php5-fpm reload > /dev/null 2>&1
        [ $? = 0 ] || ( service php5-fpm stop; pkill php5-fpm; service php5-fpm start ) > /dev/null
    endscript
}
1
stucki

Wenn keine der obigen Antworten das Problem löst, testen Sie Ihre Konfiguration, um Ihre Fehler zu sehen:

$ php5-fpm -t

In den meisten Fällen haben Sie wahrscheinlich einen Fehler in Ihrem /etc/php5/fpm/php-fpm.conf oder /etc/php5/fpm/pool.d/www.conf gemacht.

0
Paulo Coghi

Für mich stellte sich heraus, dass dies ein Fehler in der Pool-Konfigurationsdatei war (geladen aus dem Pool.d-Verzeichnis).

Führen Sie php-fpm7.0 -t aus, um configtest auszuführen (Name der ausführbaren Datei kann je nach Installation und Name des Dienstes variieren)

0
Bery