web-dev-qa-db-ja.com

初回起動時にスクリプトを実行する方法は?

CentOSマシンの初回起動時(OSインストール後)に1回だけbashスクリプトを実行する必要があります。このスクリプトは実行する必要がありますbefore network service start(このスクリプトはネットワーク構成を変更するため)どのように登録できますかネットワークサービスの開始前に実行するスクリプト?

5
Dima

/etc/init.d/networkの「chkconfig」行を見ると、ネットワークの開始優先順位が「10」であることがわかります。

/etc/init.d/yourscript:
#!/bin/bash
#
# yourscript  short description
# 
# chkconfig: 2345 9 20
# description: long description

case "$1" in
  start)
    Do your thing !!!
    chkconfig yourscript off
  ;;
  stop|status|restart|reload|force-reload)
    # do nothing
  ;;
esac

次に、chkconfig yourscript onを実行して、起動時に実行します。スクリプト内のchkconfig yourscript offは、以降の起動での実行を無効にする必要があります。

CentOS/RHEL/Fedoraの一部のバージョンには、使用できる「firstboot」プログラムがありますが、それは苦痛のようです。

キックスタートの%post内でネットワーク再構成スクリプトを実行できないのは確かですか?それが私がすることです。

11
freiheit

簡単な答え:/etc/init.d/etc/rc#.dにシンボリックリンク)に貼り付けます。最初に行うことは、ファイルの存在を確認することです。ファイルが存在する場合、スクリプトはすでに実行されている(したがって終了します)。そうでない場合は、スクリプトを実行してファイルをタッチします。

これにより、ファイルを削除して、後でスクリプトを強制的に再実行することもできます。

3
voretaq7