問題なく通常のアプリケーションのように実行されるアプリケーションがあります。このアプリケーションはI2CとWiFiを使用しています。 Wiresharkを使用してデータフローを検出し、実際に実行中であることを確認できます。サービスとして実装したとき、次のようにエラーなしでしばらくすると競合が発生しました。スタックトレースやデバッグのための方法はありますか?
* comi2c.service - I2C master
Loaded: loaded (/etc/systemd/system/comi2c.service; enabled; vendor preset: disabled)
Active: failed (Result: timeout) since Fri 2015-03-13 16:15:14 CET; 1min 4s ago
Process: 195 ExecStart=//home/sandbox/main 192.168.0.142 (code=killed, signal=TERM)
Mar 13 15:40:56 sandbox systemd[1]: comi2c.service start operation timed out. Terminating.
Mar 13 15:40:56 sandbox systemd[1]: Failed to start I2C master.
Mar 13 15:40:56 sandbox systemd[1]: Unit salto.service entered failed state.
Mar 13 15:40:56 sandbox systemd[1]: comi2c.service failed.
提供する:
[Unit]
Description=I2C master
[Service]
Type=forking
ExecStart=/root/run-i2cmaster.sh
[Install]
WantedBy=multi-user.target
run-i2cmaster.sh ファイルは次のとおりです。
#!/bin/bash
export $SENDER = 192.168.0.142
/home/sandbox/main $SENDER
修正する
タイプを変更すると問題が解決するforking
ようです。simple
なぜそれが理解できないのですか?