2016-03-23 8 views
0

をsystemdに私はDataStaxエンタープライズ4.8.5のためにsystemdユニットを構成していますDatastax&

### /etc/systemd/system/dse1.service 

[Unit] 
Description=DataStax Enterprise 

[Service] 
User=cassandra 
ExecStart=/opt/dse/dse1/bin/dse cassandra -k 
ExecStop=/opt/dse/dse1/bin/dse cassandra-stop 

私はsudo systemctl start dse1を実行したときに、私は直後にstatusをすれば、私が手:

● dse1.service - DataStax Enterprise 1 
    Loaded: loaded (/etc/systemd/system/dse1.service; static; vendor preset: disabled) 
    Active: active (running) since Wed 2016-03-23 13:47:57 EDT; 1s ago 
Main PID: 31699 (cassandra) 
    CGroup: /system.slice/dse1.service 
      ├─31699 /bin/sh /opt/dse/dse1/resources/cassandra/bin/cassandra -k -Djava.library.path=:/opt/dse/dse1/resources/hadoop/native... 
      ├─31894 /bin/java -cp :/opt/dse/dse1/lib/dse-core-4.8.5.jar:/opt/dse/dse1/lib/dse-hadoop-4.8.5.jar:/opt/dse/dse1/lib/dse-hive... 
      └─31895 grep -q Error: Exception thrown by the agent : java.lang.NullPointerException 

場合数秒待ってからもう一度やり直してください。

● dse1.service - DataStax Enterprise 1 
    Loaded: loaded (/etc/systemd/system/dse1.service; static; vendor preset: disabled) 
    Active: inactive (dead) 

Mar 23 13:34:28 pspldsea01p.fleet.ad systemd[1]: Started DataStax Enterprise 1. 
Mar 23 13:34:28 pspldsea01p.fleet.ad systemd[1]: Starting DataStax Enterprise 1... 
Mar 23 13:38:33 pspldsea01p.fleet.ad systemd[1]: Started DataStax Enterprise 1. 
Mar 23 13:38:33 pspldsea01p.fleet.ad systemd[1]: Starting DataStax Enterprise 1... 
Mar 23 13:47:41 pspldsea01p.fleet.ad systemd[1]: Started DataStax Enterprise 1. 
Mar 23 13:47:41 pspldsea01p.fleet.ad systemd[1]: Starting DataStax Enterprise 1... 
Mar 23 13:47:44 pspldsea01p.fleet.ad dse[31267]: nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused'. 
Mar 23 13:47:57 pspldsea01p.fleet.ad systemd[1]: Started DataStax Enterprise 1. 
Mar 23 13:47:57 pspldsea01p.fleet.ad systemd[1]: Starting DataStax Enterprise 1... 
Mar 23 13:48:01 pspldsea01p.fleet.ad dse[32004]: nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused'. 
Hint: Some lines were ellipsized, use -l to show in full. 

0123を実行するとcassandraユーザーとしてを使用すると、正常に動作します。

私は、通常のログの場所やsudo journalctl -u dse1

任意のアイデアを持つ任意の追加のログを見つけることができないよう?ありがとう!

答えて

2

DataStax Enterpriseにsystemctlを使用するためのsystemdサービスファイルが付属していないことは残念です。ただし、initスクリプトが付属しています。 docs

基本的に2つのオプションがあります。最初のものは、サービスを開始することで、直接init.dディレクトリを使用することです:私は、しかし、あまりにも戻ってそれに行くことになりましたsystemctlするために使用しています

sudo service dse start 

。これは私のsystemdサービスファイルです

[Unit] 
Description=DataStax Enterprise 
After=network.target 

[Service] 
PIDFile=/var/run/dse/dse.pid 
ExecStart=/etc/init.d/dse start 
ExecStop=/etc/init.d/dse stop 
SuccessExitStatus=143 
TimeoutSec=300 

[Install] 
WantedBy=multi-user.target 

initスクリプトには多くの設定オプションがあります。わかりやすくするために、スクリプト内でそれらを直接使用することをお勧めします。たとえば、systemdサービスファイルでユーザーを指定します。それは、ユーザーが既にスクリプトに指定されていることに気づくまで私に問題をもたらしていました。オプションを複製する必要はありません。

SucessExitStatus=143オプションは、Javaアプリケーションの一般的な構成です。

あなたはあなたのパッケージマネージャ

+0

FWIWでDSEをインストールしなかった場合、スクリプトの場所を適応する必要があります - 私はそれがsystemdにして動作させることができなかったので、私はINITを使用して戻って行きましたスクリプト。しかし、それが正しく動作するようにするためにはまだいくつかの調整が必要でした。 –