+1分の再起動ごとに実行されるスクリプトが必要です。レコードを配置しました@reboot
ですが、私のスクリプトでは早すぎます。再起動後にいつ実行するのですか?
スクリプトは起動後1分間だけ実行することを意図したものですか、それとも他の時間にも使用できますか?前者の場合、sleep 60
をスクリプトの先頭に、または後者の場合は、それをcrontabファイルに追加します。
@reboot sleep 60 && my_script.sh
Sr_で指摘されているように、おそらくこれは間違った方法で取り組んでいるため、適切なinit.dまたはrc.dスクリプトがより堅牢なソリューションになります。
たとえば、ネットワークが利用可能になったときに再起動後に何かを実行する必要がある場合、必要なときに実行されるsystemdユニットを書き込むことができます(もちろん、これはsystemdを備えたシステムでのみ機能します)。
これを行うには、次の内容でファイル/etc/systemd/system/my_script.service
を作成します。
[Unit]
Description=My script that requires network
After=network.target
[Service]
Type=oneshot
ExecStart=/full/path/to/my_script.sh
[Install]
WantedBy=multi-user.target
次に実行します:
Sudo systemctl daemon-reload
Sudo systemctl enable my_script
完了です!
at
を使用します。のように:
@reboot echo /root/bin/do_the_stuff | at now + 2 minutes
# at assigns it an execution time truncated to whole minutes,
# so this means it will execute in 1--2 minutes.
...追加の警告を追加して、本当に必要なのが他のすべての後に実行する場合は、OSが使用しているinitでそれを実行する方法を確認する必要があります。