Perlu skrip dieksekusi pada setiap reboot dalam +1 menit. Saya menempatkan catatan @reboot
tetapi terlalu dini untuk skrip saya. Bagaimana cara menjalankannya beberapa saat setelah reboot?
Perlu skrip dieksekusi pada setiap reboot dalam +1 menit. Saya menempatkan catatan @reboot
tetapi terlalu dini untuk skrip saya. Bagaimana cara menjalankannya beberapa saat setelah reboot?
Jawaban:
Apakah skrip hanya dimaksudkan untuk berjalan satu menit setelah boot, atau dapatkah itu digunakan di lain waktu juga? Dalam kasus sebelumnya, Anda dapat menambahkan sleep 60
ke awal skrip Anda, atau dalam kasus terakhir, menambahkannya ke file crontab:
@reboot sleep 60 && my_script.sh
Seperti yang telah ditunjukkan oleh sr_, mungkin, Anda menangani ini dengan cara yang salah, dan skrip init.d atau rc.d yang tepat akan menjadi solusi yang lebih kuat.
script -s X
Yang akan diterjemahkan ke sleep X
dalam skrip).
taskrunner
, atau, dalam hal ini,/etc/init.d
Jika Anda perlu menjalankan sesuatu setelah reboot ketika jaringan akan tersedia, misalnya, Anda dapat menulis unit systemd yang akan dieksekusi pada waktu yang diperlukan (tentu saja ini hanya akan bekerja pada sistem dengan systemd).
Untuk melakukannya, buat file /etc/systemd/system/my_script.service
dengan konten berikut:
[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
Kemudian jalankan:
sudo systemctl daemon-reload
sudo systemctl enable my_script
Kamu sudah selesai!
Saya akan menggunakan at
. Seperti dalam:
@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.
... dengan peringatan yang disebutkan sebelumnya bahwa jika apa yang Anda inginkan adalah menjalankannya setelah semua hal lain, Anda harus memeriksa bagaimana melakukannya di init yang digunakan oleh OS Anda.