FreeBSD を使用するコンピュータで起動するときは、次のコマンドを実行する必要があります。
cd /home/portal
mv portal.sqlite corrupt_portal.sqlite
これは明らかにデーモンやサービスではなく、起動するたびに1回限りのコマンドしか実行されません。
.shファイルを/usr/local/etc/rc.d/に入れようとしましたが、#!/bin/bash
何もしませんでした。また、「touch testfile
両方のバージョンを手動で実行すると正常に動作します」と簡単に書いてみました。
私がここで何を見逃しているのでしょうか?
答え1
これリモコン(8)スクリプトは自動起動プロセスを実行する役割を果たし、ディレクトリの簡単なテンプレートはマニュアルのサンプルセクションにあります/etc/rc.d/
。読むrc.subr(8)起動スクリプトの作成に関する追加の指示を提供するマニュアルページ。
/etc/rc.local
ただし、自動起動プロセスの最後のステップの1つは、名前付きスクリプトファイル(存在する場合)を読み取ることです。このファイルには特別な形式やキーワードや実行ビットセットは必要ありません。
rc(8)
マニュアルページから:
通常、rc.localの代わりに/usr/local/etc/rc.d/メカニズムが使用されますが、rc.localを使用したい場合はまだサポートされています。
答え2
最も簡単な方法はそのコマンドをに入れることですcrontab
。
通常、アスタリスクで埋められる最初の5つのフィールドの代わりに特別なマーカーを配置できます。@reboot
@reboot root:wheel /path/to/the/command [args ...]
このコマンドは、システムが再起動されるたびに実行されます。