U služby sice existuje soubor pid, ale přesto při pokusu o spuštění služby selže a řekne:
$ sudo service cassandra start
* could not access pidfile for Cassandra
Ověřil jsem oprávnění složky pod /var/run
(jehož vlastníkem je root) a podsložku cassandra vlastní uživatel cassandra, ale služba přesto nemůže získat přístup k souboru pid, i když jsem ověřil, že soubor pid existuje. (Je také přiděleno pid). Tak proč to říká, že nemůže získat přístup k pidfile?
A spuštění cassandra
jako samostatný proces prostě funguje, ale nejen pomocí 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
Jak to zprovozním pomocí sudo service cassandra start
?
Přijatá odpověď:
Musíte odstranit /var/run/cassandra
složka má tedy nesprávná oprávnění:
sudo rm -rf /var/run/cassandra
Nebo můžete oprávnění opravit ručně:
sudo chmod 750 /var/run/cassandra
Poté spusťte Cassandru jako službu:
sudo service cassandra start
Některá vysvětlení
Pokyny k oprávněním souborů naleznete zde.
-
Je bezpečné tuto složku odstranit, protože se znovu vytvoří se správnými oprávněními a obsahem. Jakmile to funguje správně, neodstraňujte jej. Může to vést ke ztrátě dat nebo nesprávnému chování.
-
chmod 750
dešifruje jako rwxr-x – oprávnění. Umožňuje čtení-zápis-spouštění uživateli, čtení-spouštění skupině a nic ostatním. Cassandře stačí nastavit oprávnění tak.