web-dev-qa-db-ja.com

アプリケーションをサービスとして起動することはできませんが、スタンドアロンプ​​ロセスとして実行するだけで機能します

サービスの場合、pidファイルは存在しますが、それでもサービスを開始しようとすると失敗します:

$ Sudo service cassandra start
* could not access pidfile for Cassandra

/var/run(所有者はルート)の下でフォルダーのアクセス許可を確認し、サブフォルダー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を使用してこれを機能させるにはどうすればよいですか?

4
Rajat Gupta

/var/run/cassandraフォルダーを削除する必要があるため、アクセス権が間違っています。

Sudo rm -rf /var/run/cassandra

または、アクセス許可を手動で修正できます。

Sudo chmod 750 /var/run/cassandra

次に、Cassandraをサービスとして開始します。

Sudo service cassandra start

いくつかの説明

あなたが見つけることができるファイル許可の指示 here

  • 適切な権限とコンテンツで再作成されるため、そのフォルダーを削除しても安全です。ただし、正常に動作したら削除しないでください。データの損失または不正な動作が発生する可能性があります。

  • chmod 750は、rwxr-x ---権限として復号化します。これにより、ユーザーは読み取り/書き込み/実行、グループは読み取り/実行、他のユーザーは何も実行できません。 Cassandraの場合、許可を設定するだけで十分です。

5
Danatela

このソリューションは、次の方法で実現できます。

$ Sudo vim /etc/init.d/cassandra;

次の行を見つけます。

CMD_PATT="cassandra.+CassandraDaemon"

置換:

CMD_PATT="cassandra"

保存して停止し、再度開始します。サービスはステータスを正しく取得します。 cassandra 2.3でテスト済み

ここのソース: https://www.digitalocean.com/community/tutorials/how-to-install-cassandra-and-run-a-single-node-cluster-on-ubuntu-14-04 =(ステップ3を確認)

2
Joepreludian

Cassandra 2.0.9から2.1.4への移行のための私のソリューション

アップグレード後

Sudo apt-get install dsc21

ログファイルに移動します。

tail -f /var/log/cassandra/system.log

cassandra構成ファイルを変更する必要があることがわかります。

  1. カサンドラを止める

    Sudo /etc/init.d/cassandra stop
    
  2. Cassandra構成ファイルに移動します

    Sudo vi /etc/cassandra/cassandra.yaml
    
  3. これらの5行をコメント化するか、削除します。

    • multithreaded_compaction: false
    • preheat_kernel_page_cache: false
    • memtable_flush_queue_size: 4
    • in_memory_compaction_limit_in_mb: 64
    • compaction_preheat_key_cache: true
  4. Cassandraを起動します

    Sudo /etc/init.d/cassandra start
    
  5. 確認する

    nodetool status
    
0
Fred