2017-09-17 16 views
-1

systemd経由でpigpiod.serviceというサービスを開始しようとしています。 3つのコマンドでスクリプトを呼び出します。 2番目は除外されます。どうしてこれなの?システム内のサービスがスクリプト内にコマンドを残しています

/etc/systemd/system/pigpiod.service:

[Unit] 
Description=Starts pigpiod 
Before=touchscreen.service 

[Service] 
ExecStart=/home/sysop/pigpiod.sh 

[Install] 
WantedBy=multi-user.target 

/home/sysop/pigpiod.sh:

#!/bin/sh 

touch /home/sysop/before_pigpiod 
/usr/bin/pigpiod 
touch /home/sysop/after_pigpiod 
  • 2つのファイルがで作成されますマシンを再起動します/home/sysop/ですが、pigpiodは開始していません。
  • sudo systemctl start pigpiodでサービスを手動で開始する場合も同様です。
  • sudo /home/sysop/pigpiod.shを手動で実行すると、pigpiodが実際に起動しています。

これは、右のブート後sudo systemctl status pigpiod -lの出力です:

● pigpiod.service - Starts pigpiod 
    Loaded: loaded (/etc/systemd/system/pigpiod.service; enabled) 
    Active: inactive (dead) since Sat 2017-09-16 20:02:03 UTC; 2min 29s ago 
    Process: 440 ExecStart=/home/sysop/pigpiod.sh (code=exited, status=0/SUCCESS) 
Main PID: 440 (code=exited, status=0/SUCCESS) 

Sep 16 20:02:02 kivypie systemd[1]: Starting Starts pigpiod... 
Sep 16 20:02:02 kivypie systemd[1]: Started Starts pigpiod. 

なぜそれがあり、それにsystemdは/usr/bin/pigpiodの実行をスキップしますが、手動でrootとしてスクリプトを実行することはないのですか?

私のシステム:ラズベリーパイモデル3B、Raspbian GNU/Linuxの8(ジェシー)-gオプションなし

+0

スタックオーバーフローは、プログラミングや開発の質問のためのサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

-1

pigpiodフォーク。だから、Type = forkingを使用するか、使用pigpiod -g

[Unit] 
Description=Starts pigpiod 
Before=touchscreen.service 

[Service] 
ExecStart=/home/sysop/pigpiod.sh 
Type=forking 

[Install] 
WantedBy=multi-user.target 
関連する問題