web-dev-qa-db-ja.com

systemd Exec形式エラー

サービスとしてインストールしようとしているJavaファイルがありますが、エラーが発生します。以下は、ファイルの内容とエラーです。Debian8を実行しています。

[Unit]
Description=App1Manager
After=syslog.target

[Service]
ExecStart=/usr/bin/jsvc -user root -cp /usr/share/Java/commons-daemon.jar:/usr/local/myapp/bin/Manager.jar -pidfile /var/run/app1manager.pid

Type=forking

[Install]
WantedBy=multi-user.target

以下のいずれかを使用すると、次のエラーが発生します。

SYSTEMD_LOG_LEVEL=debug /lib/systemd/system/myapp1 
SYSTEMD_LOG_LEVEL=debug /etc/init.d/myapp1 

/etc/init.d/myapp1: line 1: [Unit]: command not found
/etc/init.d/myapp1: line 6: [Service]: command not found
/etc/init.d/myapp1: line 7: -user: command not found
/etc/init.d/myapp1: line 10: [Install]: command not found


Aug 12 12:04:39 debian systemd[3903]: Failed at step EXEC spawning /etc/init.d/myapp1: Exec format error
-- Subject: Process /etc/init.d/myapp1 could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- The process /etc/init.d/myapp1 could not be executed and failed.
--
-- The error number returned while executing this process is 8.
Aug 12 12:04:39 debian systemd[1]: myapp1.service: control process exited, code=exited status=203
Aug 12 12:04:39 debian systemd[1]: Failed to start (null).
-- Subject: Unit myapp1.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit myapp1.service has failed.
--
-- The result is failed.
Aug 12 12:04:39 debian systemd[1]: Unit myapp1.service entered failed state.
7
jaseUK

systemd/system.serviceファイル拡張子を付けてインストールします。実行可能ビットを設定する必要はありません。 systemd形式のサービスファイルを/etc/init.d/にインストールしないでください。これは、レガシーSysVinitスタイルのサービススクリプト用です。

サービスを開始するには、systemctl start myapp1を使用します。サービスがsystemdとして実装されているのかSysVとして実装されているのかわからない場合は、service myapp1 startを使用してください。

ブート時に有効にするには[適切なInstallセクションを指定] systemctl enable myapp1を使用します。

7
sourcejedi