私のDebianには/etc/rc.local
2つのスクリプトがありました(1つはWi-Fi AP用、もう1つはVPNクライアント接続用)。
sh /bootscripts/vpn.sh &
sh /bootscripts/wifiap.sh &
#test:
date >> /home/user24/Desktop/logdate
exit 0
どちらのスクリプトも実行可能rwxr-xr-x
で、対応するshebang行はです#!bin/bash
。
しかし、彼らは走りません。私はどこで間違っていますか?
答え1
各マルチユーザーランレベルの終わりで実行されるため、/etc/rc.local
起動スクリプトを追加するのは正しい場所ではありません。/etc/rc.local
いかなる方法でも使用しないことをお勧めします。これは先に *nix 回を繰り返したものです。代わりに、デーモン、プロセス、またはジョブを開始または停止するための引数を受け入れる/etc/init.d/name
起動スクリプトを作成します。start
stop
#! /bin/sh
# /etc/init.d/name
#
case "$1" in
start)
echo "Starting name"
your_service --with --parameters
;;
stop)
echo "Stopping name"
kill your_service
;;
*)
echo "Usage: /etc/init.d/name {start|stop}"
exit 1
;;
esac
exit 0
/etc/init.d/skeleton
この目的のためのフレームワークスクリプトもあります。
スクリプトの作成後に権限を設定します。
chmod 755 /etc/init.d/name
今すぐ開始シーケンスに追加します。
update-rc.d name defaults
これにより、ディレクトリに必要なリンクが作成されます/etc/rc*.d/
。