サービスの場合、pidファイルは存在しますが、それでもサービスを開始しようとすると、次のように表示されません。
$ sudo service cassandra start
* could not access pidfile for Cassandra
/var/run
でフォルダの権限を確認しました (所有者はrootです)サブフォルダーcassandraはcassandraユーザーによって所有されていますが、pidファイルが存在することを確認しても、サービスはpidファイルにアクセスできません。 (pidも割り当てられます)。では、なぜpidfileにアクセスできないと表示されるのですか?
そして、cassandra
を実行します スタンドアロンプロセスとしては機能しますが、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
sudo service cassandra start
を使用してこれを機能させるにはどうすればよいですか。 ?
承認された回答:
/var/run/cassandra
を削除する必要があります したがって、フォルダの権限が間違っています:
sudo rm -rf /var/run/cassandra
または、権限を手動で修正することもできます:
sudo chmod 750 /var/run/cassandra
次に、Cassandraをサービスとして開始します:
sudo service cassandra start
いくつかの説明
ここにあるファイル権限の説明。
-
適切な権限とコンテンツで再作成されるため、そのフォルダを削除しても安全です。ただし、正しく機能したら削除しないでください。データの損失や不正な動作が発生する可能性があります。
-
chmod 750
rwxr-x-権限として復号化します。これにより、ユーザーには読み取り/書き込み-実行が許可され、グループには読み取り-実行が許可され、他のユーザーには何も許可されません。 Cassandraの場合は、権限を設定するだけで十分です。