私はsystemdを使い始めたばかりで、同僚から与えられたスクリプトに問題があります。このスクリプトはDebian 7ではバックグラウンドプロセスとして機能しましたが、Debian 8では機能しませんでした。私はそれをsystemdに書き直すことにしました。
これはchunk8.service
にあります(/etc/systemd/system
にあります):
[Unit]
Description=Chunk-search Daemon
Requires=mysql.service Apache2.service
[Service]
PIDFile=/var/run/chunkrm8.pid
ExecStart=/usr/bin/php /var/www/chunkrm8/task_pool.php > /dev/null 2>/dev/null
Type=forking
KillMode=process
[Install]
WantedBy=multi-user.target
システムを再起動すると(またはsystemctl start chunk8.service
を実行すると)、次のようになります。
● chunk8.service - Chunk-search Daemon
Loaded: loaded (/etc/systemd/system/chunk8.service; enabled)
Active: failed (Result: timeout) since Tue 2016-04-19 16:21:20 MSK; 1min 1s ago
私は何を間違っていますか?前もって感謝します。
指定したType=forking
ですが、開始したプログラムはタイムアウト期間内にフォークされなかったため、systemdはそれが適切に起動しなかったと見なし、強制終了して、サービスに失敗のマークを付けました。
プロセスがそれ自体をデーモン化することを確信していますか? PHPスクリプトがこれを行うのは珍しいことです。おそらくType=simple
代わりに。