staging.inyokaproject.org

PID-File erzeugung im init.d-Script

Status: Ungelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

basic

Anmeldungsdatum:
7. Oktober 2008

Beiträge: Zähle...

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.

Antworten |