CentOS 7で最初のinitスクリプトを作成しています。このスクリプトでデーモンとして1つのプロセスを実行し、/ etc/init.d /関数ファイルですが、このスクリプトをインクルードすると実行が停止します。/etc/init.d/functionsの後にBashスクリプトが停止する
私が書く場合は、私の作成したファイルは "/etc/init.d/UpdateScript" であると仮定します
echo "Script start"
. /etc/init.d/functions
echo "After add functions"
ので、コマンドの後: は
を開始/etc/init.d/UpdateScript私は出力として「スクリプト開始」のみを持つ。しかし、私が "#。/etc/init.d/functions"とコメントすれば、 "機能を追加した後"でも "daemon:command not found"はもちろんです。 その奇妙な動作の理由は何ですか?それを修正するには?
'/etc/init.d/function'がどこから出ているのかを見るには' set -x'を試してください。 –
'/ etc/init.d'はCentOS 7で廃止され、systemdに切り替わりました。より移植性の高い代替方法として、 '/ lib/lsb/init-functions'を調達してみてください。 'redhat-lsb-core'パッケージをまだインストールしていない場合は、それをインストールする必要があります。さらに、init.d形式の起動スクリプトではなく、システムの '.service'ファイルを書きます。 –
あなたのスクリプトに 'set -e'を使いますか? –