Moin,
gibt es eigentlich irgendwelche Standards für die Erstellung der PID-Datei in /var/run/ bei init.d start scripts?
Insbesondere wenn sich ein Prozess/Dienst als konfigurierbaren non-root user ausführen lässt.
Ich meine hiermit konkret den FTP-Server namens wzdftpd. Hier lässt sich in der Konfigurationsdatei uid und gid konfigurieren und der Pfad zur pid-File. Leider passt das aber nicht mir dem im packet enthaltenden init.d script zusammen. Folgende Zeilen aus dem init.d script führen natürlich zu Problemen, wenn ich in der Konfig server_uid auf nobody oder wzdftpd setze.
1 2 3 4 5 | if [ ! -d /var/run/wzdftpd ]; then mkdir /var/run/wzdftpd chown ftp /var/run/wzdftpd chmod 0755 /var/run/wzdftpd fi |
Selbes gibt dafür, wenn ich den Pfad zur PID-File in der Konfig z.b. von /var/run/wzdftpd/wzdftpd.pid nach /var/run/wzdftpd.pid ändere
1 2 | start-stop-daemon --start --quiet \ --pidfile /var/run/$NAME/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS |
Leider ist der Fileowner der pid-File und der Pfad zu pid-File im init.d-Script zu statisch und passen nicht mit den möglichen Konfigurationen der Dienstes zusammen.
Unter https://bugs.launchpad.net/ubuntu/+source/wzdftpd/+bug/420455 habe ich das ganz schon als Bug gepostet, mit einem Vorschlag, wie man es vielleicht besser machen könnte.
Ich habe mal in die init.d-Scripts andere Dienst reingeschaut, wo man den Prozess als Konfigurierbaren non-root-user starten kann z.b. openvpn. Aber so richtig schlau bin ich da nicht geworden.
Bearbeitet von Bordi:
Bitte zukünftig immer Ubuntu-Version und Release angeben, danke.