Pour un service bien qu'un fichier pid existe, mais toujours lors de la tentative de démarrage du service, il échoue en disant :
$ sudo service cassandra start
* could not access pidfile for Cassandra
J'ai vérifié les autorisations de dossier sous /var/run
(dont le propriétaire est root) et le sous-dossier cassandra appartient à l'utilisateur cassandra, mais le service ne peut toujours pas accéder au fichier pid même si j'ai vérifié que le fichier pid existe. (Le pid est également alloué). Alors pourquoi dit-il qu'il ne peut pas accéder au pidfile ?
Et exécutant cassandra
en tant que processus autonome fonctionne, mais pas seulement en utilisant 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
Comment puis-je faire fonctionner cela en utilisant sudo service cassandra start
?
Réponse acceptée :
Vous devez supprimer /var/run/cassandra
dossier donc il a de mauvaises permissions :
sudo rm -rf /var/run/cassandra
Ou vous pouvez corriger les autorisations manuellement :
sudo chmod 750 /var/run/cassandra
Ensuite, démarrez Cassandra en tant que service :
sudo service cassandra start
Quelques explications
Des instructions sur les autorisations de fichiers que vous pouvez trouver ici.
-
Vous pouvez supprimer ce dossier en toute sécurité, car il se recrée avec les autorisations et le contenu appropriés. Mais ne le supprimez pas une fois qu'il fonctionne correctement. Cela peut entraîner une perte de données ou un comportement incorrect.
-
chmod 750
déchiffre en tant que rwxr-x — autorisations. Il autorise la lecture-écriture-exécution à l'utilisateur, la lecture-exécution au groupe et rien aux autres. Pour Cassandra, il suffit de paramétrer les permissions ainsi.