rc.localのスクリプト(起動時に開始)、起動しない

rc.localのスクリプト(起動時に開始)、起動しない

私のDebianには/etc/rc.local2つのスクリプトがありました(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起動スクリプトを作成します。startstop

#! /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/

関連情報