初期化スクリプト。ブートストラップ活動と実行活動の違い

初期化スクリプト。ブートストラップ活動と実行活動の違い

に実行され終了されるスクリプトがあります/etc/init.d。起動時に自動的に起動する/etc/rc5.dシンボリックリンクが追加されています。chkconfigしたがって、起動時に起動し、service myscript startユーザーが手動で制御することができます。章で説明されている順序は起動時に実行されることが知られてservice myscript stopいます。startしかし、私もいくつかの活動をしなければなりません。ただシステムがすでに起動している場合は、起動時に手動でこの操作を実行するためにユーザーに明示的なアクセス権を付与する必要はありません。存在するこの記事説明したように、boot()スクリプトにシーケンスを追加でき、起動時にのみ実行されます。しかし、それは動作しません。私は別のアプローチを試しました。boot()次のように書いていますが、function boot()結果は同じです。動作しません。したがって、いくつかの質問が提起されます。ディストリビューション機能ですか、それともこのシーケンスはスクリプトのどこかにあるべきですか?どちらも間違っている場合(またはすべてがboot()間違っているか使用されなくなった場合)、起動時にのみ操作を実行できますか?私のシステムはLinux Red Hat Enterprise 6

これは私のスクリプトです。

#!/bin/bash
#Some comments here

#some inclusions of another scripts here

function startService()
{
      #some activity for launching
}
boot()
{
        #That's it. Here I want to perform some preparations (remove files)
        #and then launch starting sequence:
        if [ -f "somefilename" ]
        then
            rm -f "somefilename"
        fi
        startService
}
function stopService()
{
        #Activity for stopping
}

#Some functions for service's status retrieving here

case "$1" in
        start)
                startService
                ;;
        stop)
                stopService
                ;;
        status)
                #Calls of status functions
                ;;
        *)
                echo "Usage: {start | stop | status}"
                exit 1
                ;;
esac

よろしくお願いします。

ベストアンサー1

私はboot()セクションを持つinitスクリプトに慣れていないので、OpenWRTまたはbusyboxに固有のものです。 RHEL6では、「boot」パラメータではなく「start」パラメータを介してのみinitスクリプトを呼び出すことができます。

RHEL6で起動時にスクリプトを実行するには、/ etc / initディレクトリでUpstart用の「confファイル」を設定する必要があります。起動例として /etc/init/rc.conf をお勧めします。次のように名前を付けます。myscript.conf、次のように記入してください。

# adjust the runlevels if you don't want to run myscript in every runlevel
start on runlevel [0123456]

# this tells init to just run this once and let it exit
task

# if you want to see the output from your script on the console, use the following line; otherwise remove it
console output

# call myscript with a boot flag (to keep one copy of your script in /etc/init.d; adjust this if you'd rather have a separate boot-script)
exec /etc/init.d/myscript boot

upstartのinitに関する詳細情報を確認してくださいman -s5 init

おすすめ記事