Fedoraの私の/etc/rc.local
外観は次のとおりです。
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
/usr/bin/screen -dmS wixel python "/home/myuser/python-usb-wixel-xdrip/python-usb-wixel.py"
exit 0
しかし、始めてからsudo screen -r wixel
私が受け取ったのはThere is no screen to be resumed matching wixel.
/usr/bin/screen -dmS wixel python "/home/myuser/python-usb-wixel-xdrip/python-usb-wixel.py"
私を起動するスクリプトを実行し、sudo screen -r wixel
その出力を追跡します。
起動時にスクリプトが起動しないのはなぜですか?
頑張ったsudo chmod a+rx /etc/rc.local
答え1
あなたの説明には記載されていませんが、ここでFedoraタグを見つけました。 Fedoraはsystemd
しばらく利用可能であり、それを使用するにはrc.localサービスを有効にする必要があります。
/usr/lib/systemd/system/rc-local.service
詳細については、systemdサービスを確認してください。
スクリプトは/etc/rc.d/rc.local
(ExecStart
代わりに/etc/rc.local
)に移動する必要があります。このファイルはパッケージで提供する必要がありますが、initscripts
私のシステムにはありません。恐れずに作ってみてください。ただし、正しい権限とshebang(たとえば#!/bin/bash
)を設定することを忘れないでください。起動して有効にする必要がありますrc-local.service
。
これはあなたに役立ちます:
# as root
mv /etc/rc.local /etc/rc.d/rc.local
sed -i '1i #!/bin/bash' /etc/rc.d/rc.local
chmod 0755 /etc/rc.d/rc.local
# this run the script immediately (!)
systemctl start rc-local.service
# this enables service to run it within boot
systemctl enable rc-local.service
systemd
パラメータを使用してスクリプトを実行しますstart
。何も壊れませんが、スクリプトで使用できます。
これはあなたの問題に非常に良いですrc.local
。とにかくより良い解決策は、新しいシステムサービスを追加することです。インターネット上にマニュアルがいくつかあるので、そこに書くにはあまりにも怠惰です。 :) たとえば、次のようになります。http://www.linuxveda.com/2014/04/28/autostart-process-gnu-screen-systemd/