![CentOSの起動時にバックグラウンドでシェルスクリプトを実行する方法は? [コピー]](https://linux33.com/image/121148/CentOS%E3%81%AE%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%AB%E3%83%90%E3%83%83%E3%82%AF%E3%82%B0%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%81%A7%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
次のループを含むシェルスクリプトがあります。
while true
do
if ... ; then
...
else
...
break
fi
done
OSの起動時にこのスクリプトにバックエンドを実行させたいと思います。このスクリプトを起動スクリプトとして/etc/rc.d/local.rcに追加してみました。ただし、オペレーティングシステムの起動時間が長すぎます。オペレーティングシステムが起動した後、このスクリプトはもう存在しません。
それでは、OSの起動時にこのスクリプトをバックエンドに追加するにはどうすればよいですか?バックエンドでもこのスクリプトを手動で起動する必要があります。ありがとうございます〜
答え1
起動時にスクリプトを実行するには、次から始める必要があります。
/etc/cron.d/myrebootscript
内容がある
@reboot <user> <command>
例:
@reboot joe /usr/local/bin/myscript
スクリプトは、起動中に予測できない時間に実行されます。たとえば、スクリプトがネットワークが表示されるのを待つ必要がある場合は、ループを追加する必要があります/usr/local/bin/myscript
。
#! /bin/bash
# wait for 10.1.2.3 is pong'ing
while ! ping -c1 -W1 10.1.2.3 > /dev/null ; do
sleep 1
done
do_my_command_here
/etc/rc.local
今は廃止されました。
答え2
すべてのinitスクリプトが実行された後に実行されるように、/etc/rc.d/rc.localファイルにこのスクリプトを含めます。
.bash_profileにパスの他のオプションを追加できます。