最初の起動時にのみ実行され、二度と実行されないスクリプトを作成したいと思います。 VMテンプレートで変換されるので、サーバーの起動時に自動的に実行できるスクリプトを作成できるようにしたいと思っています。
たとえば、スクリプトを/etc/init.d/firstbootの下に置き、chkconfigを使用してrhel(Ubuntuでは使用できないようです)でそれを行うことができますが、Ubuntu 14および16でそれを行う必要があります、 何か案は? -/etc/init.dの下にスクリプトを配置すると、起動時に実行されると想定できますか?
私はググリングしてきましたが、私は多くの異なるものを見ています。たとえば、rhelについても同様のことがわかりました。
/etc/init.d/yourscript:
#!/bin/bash
# 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
どんな助けでも大歓迎です
スクリプトをsystemdで開始できます。次のようなsystemdユニットを記述します。
[Unit]
Description=yourscript
ConditionPathExists=/path/to/some/file
[Service]
Type=oneshot
ExecStart=/path/to/yourscript
[Install]
WantedBy=multi-user.target
このユニットを有効にすると、ConditionPathExists
内のファイルが存在する場合にのみ開始されます。実行後にそのファイルを削除するスクリプトを作成できます。チェック systemd.unit このようなチェックは他にもあります。たとえば、ConditionFileNotEmpty
やConditionDirectoryNotEmpty
も便利です。