Perlu skrip dieksekusi pada setiap reboot dalam +1 menit. Saya menempatkan catatan @reboottetapi terlalu dini untuk skrip saya. Bagaimana cara menjalankannya beberapa saat setelah reboot?
Perlu skrip dieksekusi pada setiap reboot dalam +1 menit. Saya menempatkan catatan @reboottetapi 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 60ke 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 XYang akan diterjemahkan ke sleep Xdalam 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.servicedengan 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.