次のサービスユニットを定義しました。/lib/systemd/system/
[Unit]
Description=Kafka and Zookeeper 3 node ensemble
Requires=network.target remote-fs.target
After=network.target remote-fs.target
ConditionPathExists=!/opt/
[Service]
Type=simple
EnvrionmentFile=/etc/environment
User=kafkacluster
Group=kafkacluster
ExecStart=${KAFKA_HOME}/bin/kafka-startj.sh ${KAFKA_HOME}
ExecStop=${KAFKA_HOME}/bin/kafka-stopj.sh ${KAFKA_HOME}
Restart=on-failure
SyslogIdentifier=kafkacluster
[Install]
WantedBy=multi-user.target
その後、次のコマンドを実行しました。
systemctl enable /lib/systemd/system/kafkacluster.service
これは、そのファイルにソフトリンクがあることを示します/etc/systemd/system
。今私が走るとき
systemctl start kafkacluster.service
次のエラーが発生します。
Unit kafkacluster.service failed to load: No such file or directory. See system logs and 'systemctl status kafkacluster.service' for details.
しかし、今サービスが提供されているので、何が欠けているのか分からない。誰もが正しい方向に私を指すことができますか?
誤式 条件付きパス存在=/opt/
出力systemctl kafkacluster.service
kafkacluster.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
答え1
ConditionPathExists=!/opt/
次の点に注意してください。 ConditionPathExists =に渡された絶対パス名の前に感嘆符( "!")が付いていると、テストは無効になり、パスが存在しない場合にのみデバイスが起動します。
システムに本当に/opt/ディレクトリがありませんか?
そして、${KAFKA_HOME}変数が定義されていることを確認してください。