VORAUSSETZUNG und ZWECK
Es gibt diesen Thread über Passagier/mod_rails scheitert beim Initialisieren in Fedora 12 beim Starten von Apache. Im Grunde genommen liegt das Problem an den Berechtigungen, und du kannst dies vermeiden, indem du folgendes aufrufst
setenforce 0
bevor du ausführst
service httpd start
und danach aufrufst
setenforce 1
um es zurückzusetzen. Es funktioniert gut, aber ich möchte, dass die Abfolge automatisch abläuft, wenn Fedora neu gestartet wird.
PROBLEM
Ich habe mir /etc/init.d/httpd
angesehen und festgestellt, dass es einfach auf etc/rc.d/init.d/functions
umleitet, und der entscheidende Aufruf ist
systemctl_redirect $0 $1
Also dachte ich einfach, dass es funktionieren würde, wenn ich diesen Aufruf einfach mit setenforce
-Aufrufen umgebe.
setenforce 0
systemctl_redirect $0 $1
setenforce 1
Aber es funktioniert nicht. Es gibt einen neuen Fehler aus (im httpd Fehlprotokoll) :
Kann das Verzeichnis '/tmp/passenger.1.0.8581/generation-0/buffered_uploads' nicht auf seine UID auf 48 und GID auf 48 ändern: Operation nicht erlaubt (1)
Wenn ich das letzte setenforce 1
weglasse, dann funktioniert es endlich! Aber offensichtlich möchte ich es irgendwo zurücksetzen.
FRAGE
Wie kann ich diese setenforce 0
- und setenforce 1
-Aufrufe an die Bootsequenz von httpd
anhängen? Ich habe das Gefühl, dass der beste Weg wäre, mein eigenes /etc/init.d/httpd
-Skript zu schreiben, das nicht systemctl
verwendet, aber ich möchte das vermeiden, da es wie ein steiniger Weg aussieht... Aber wenn ich falsch liege und wenn du einen einfachen Weg vorschlagen kannst, um mein eigenes etc/init.d/httpd
-Skript zu schreiben, würde ich das auch schätzen.