Saya menjalankan Debian 7 Wheezy dan saya harus memulai beberapa layar saat startup segera setelah ada koneksi internet yang berfungsi penuh. Namun, tidak, jika koneksi internet terputus dan terkoneksi lagi. Jadi hanya pada koneksi internet fungsional pertama setelah boot.
Bisakah Anda memposting naskah boneka untuk ini dan memberi tahu saya di mana harus meletakkannya dan membuatnya dieksekusi di bawah kondisi yang diberikan?
Script hanya perlu memulai layar dan kemudian berhenti tetapi layar harus dilanjutkan.
EDIT
Saya sudah pernah mendengar /etc/network/if-up.d/
folder. Tetapi bagaimana saya bisa memastikan bahwa skrip tidak dieksekusi lagi jika koneksi internet terputus dan kemudian dibangun kembali?
debian
networking
startup
MinecraftShamrock
sumber
sumber
Jawaban:
Masukkan skrip Anda
/etc/network/if-up.d
dan buat itu bisa dieksekusi. Ini akan dijalankan secara otomatis setiap kali antarmuka jaringan muncul.Untuk membuatnya berfungsi hanya saat pertama kali dijalankan pada setiap boot, periksalah apakah ada file flag yang Anda buat setelah pertama kali. Contoh:
sumber
/var/run
adalah sistem file yang mudah menguap (atmpfs
). Jadi dijamin akan muncul kosong di setiap boot baru.python -c 'import os; os.open("/var/run/work-was-already-done", os.O_EXCL|os.O_CREAT, 0)' 2>/dev/null || exit 0
IFACE
apakah tidaklo
- atau antarmuka virtual - atau lebih baik, uji konektivitas internet dengan melakukan ping.$IFACE
dapat memiliki nilai antarmuka apa pun yang muncul. Anda dapat membuat daftar semua antarmuka yang ada denganip link
atau melihat yang dikonfigurasi untuk dibawa oleh pemindaian/etc/network/interfaces
Ini adalah pekerjaan yang sangat cocok untuk Anda
systemd
.Menjalankan skrip sebagai layanan systemd
Jika sistem Anda menjalankan systemd , maka Anda dapat mengonfigurasi skrip Anda untuk dijalankan sebagai layanan systemd yang menyediakan kontrol atas siklus hidup dan lingkungan eksekusi, serta prasyarat untuk memulai skrip, seperti jaringan yang sedang berjalan dan berjalan.
Folder yang disarankan untuk layanan Anda sendiri adalah
/etc/systemd/system/
(opsi lain adalah/lib/systemd/system
tetapi yang biasanya hanya digunakan untuk layanan OOTB).Buat file misalnya dengan
sudo vim /etc/systemd/system/autossh.service
:Sekarang Anda dapat menguji layanan:
Memeriksa status layanan:
Menghentikan layanan:
Setelah Anda memverifikasi bahwa layanan berfungsi seperti yang diharapkan, aktifkan dengan:
sumber
Koneksi internet yang dibesarkan oleh sebuah entri di
/etc/rc6.d/
mungkinS35networking
. Jika Anda mengubah file itu dan menyisipkan perintah Anda di akhir, atau lebih baik menambahkan/etc/init.d/mystuff
tautan/etc/rc0.d/S36mystuff
ke sana dan menyisipkan perintah Anda di sana, maka itu akan dimulai segera setelah jaringan menyala.sumber
/etc/network/if-up.d
/etc/rc0.d
akan dijalankan pada saat startup, mereka akan berjalan pada saat shutdown (run level 0). Pada saat startup itu akan menjadi sesuatu yang/etc/rc2.d
mirip atau mirip. Khusus untuk mengi Debian OP, itu/etc/rcS.d/S12networking
. Itu semua symlink ke file yang sama, tentu saja. BTW @Anthon terima kasih telah memperbaiki jawaban saya: "Tolong" bukannya "Put"? Benar-benar kesalahan ketik yang aneh!if-up.d
mekanisme umum yang juga berfungsi pada koneksi kembali.