Für einen Dienst existiert zwar eine PID-Datei, aber beim Versuch, den Dienst zu starten, schlägt es immer noch fehl und sagt:
$ sudo service cassandra start
* could not access pidfile for Cassandra
Ich habe die Ordnerberechtigungen unter /var/run
überprüft (dessen Besitzer root ist) und der Unterordner cassandra gehört dem Benutzer cassandra, aber der Dienst kann immer noch nicht auf die PID-Datei zugreifen, obwohl ich überprüft habe, dass die PID-Datei existiert. (Auch pid wird zugewiesen). Warum sagt es also, dass es nicht auf die PID-Datei zugreifen kann?
Und cassandra
ausführen als eigenständiger Prozess funktioniert nur, aber nicht nur mit service cassandra start
$ sudo ls -l /var/run/cassandra
total 4
-rw-r--r-- 1 cassandra cassandra 4 Mar 18 07:33 cassandra.pid
$ sudo su
# ls -ld /var/run/cassandra
dr--r----- 2 cassandra cassandra 60 Mar 18 07:38 /var/run/cassandra
Wie mache ich das mit sudo service cassandra start
?
Akzeptierte Antwort:
Sie müssen /var/run/cassandra
entfernen Ordner, daher hat er falsche Berechtigungen:
sudo rm -rf /var/run/cassandra
Oder Sie können Berechtigungen manuell korrigieren:
sudo chmod 750 /var/run/cassandra
Starten Sie dann Cassandra als Dienst:
sudo service cassandra start
Einige Erklärungen
Anleitungen zu Dateiberechtigungen finden Sie hier.
-
Es ist sicher, diesen Ordner zu löschen, da er mit den richtigen Berechtigungen und Inhalten neu erstellt wird. Aber löschen Sie es nicht, wenn es richtig funktioniert. Dies kann zu Datenverlust oder falschem Verhalten führen.
-
chmod 750
entschlüsselt als rwxr-x— Berechtigungen. Es erlaubt Lesen-Schreiben-Ausführen für den Benutzer, Lesen-Ausführen für die Gruppe und nichts für andere. Für Cassandra reicht es aus, Berechtigungen so zu setzen.