起動時に実行する必要があるスクリプトを作成していますが、問題は、スクリプトを作成するためにfstabを介して自動的にマウントされる共有ドライブの一部のファイルが必要で、実行時にドライブがまだマウントされていないことです。
cron @reboot と init.d パスを試してみましたが、どちらも早すぎます。mount -a
スクリプトに追加することも検討しましたが、sudo
そうしないことをお勧めします。今は動作するように遅延を追加しましたが、少し深刻な感じがしました。
fstabが処理された後に起動スクリプトを実行させる方法はありますか?または、マウントを使用せずに強制的に廃棄しますかsudo
?
答え1
これを行うには、スクリプトを次のように渡す必要があります。システム依存関係を定義できる単位(systemdがあると仮定)...
持続したい場合スケジュールされたタスク@reboot(簡単なオプションのように聞こえます。)スクリプトをよりスマートにする必要があります(またはfsマウント後にcronを起動する必要があります...変更はお勧めできません)。単純な遅延ではなく、必要なファイルシステムがマウントされているかどうか(bashで)確認できます。
while ! mount | awk '{print $3}' | grep -qx /the/mountpoint; do
sleep 1
done
あるいは、必要なファイルが存在することを確認できます。
while ! [ -f /that/file ] ; do
sleep 1
done
答え2
私はあなたが比較的新しいLinuxディストリビューションを使用していると仮定しているので、デフォルトのディストリビューションインストールでは廃止され、これが問題である可能性が高いので、systemd
マニュアルを確認したいかもしれません。他のスクリプトの前に実行されるスクリプトを指定できる開始依存関係を許可します。SysV
systemd
以下を確認してください協会