Saya baru mengenal Linux & menantikan untuk memulai aplikasi (yang berganti setiap 10 detik). Saya telah menulis program aplikasi & berfungsi baik tetapi sekarang saya ingin memulainya secara otomatis saat boot.
Dokumentasi di sini mengatakan untuk menyalin skrip startup ke /etc/init.d
direktori dan membuat tautan simbolis ke skrip yang disalin dalam rc.d
direktori.
Apa yang harus menjadi ekstensi dan nama file skrip ini? Bisakah kita menambahkan tautan simbolis secara manual rc.d
atau ada prosedur khusus untuk ini?
Adakah saran bagaimana mencapainya?
start-stop-daemon
menanganinya lebih baik (meskipun lebih disukai program itu sendiri daemonizes). Distro apa yang Anda gunakan? Di luar jenis MIME desktop, ekstensi file tidak berarti di * nix dan lebih disukai yang tidak dapat dieksekusi.cron
.Jawaban:
Inilah kutipan dari http://www.debian-administration.org/articles/28 yang sepertinya menjawab pertanyaan Anda.
Catatan: Pada contoh skrip di bawah ini, tambahkan saja panggilan ke bagian "
start)
" untuk benar-benar meluncurkan program Anda. Anda dapat menguji fungsionalitas skrip tanpa me-reboot sistem: sebut saja dengan path lengkap dan berikan parameter "start
" atau "stop
"Ini dia:
Debian menggunakan sistem init seperti Sys-V untuk menjalankan perintah ketika runlevel sistem berubah - misalnya saat bootup dan waktu shutdown.
Jika Anda ingin menambahkan layanan baru untuk memulai ketika mesin melakukan booting, Anda harus menambahkan skrip yang diperlukan ke direktori
/etc/init.d/
. Banyak skrip yang sudah ada di direktori itu akan memberi Anda contoh hal-hal yang dapat Anda lakukan.Berikut ini skrip yang sangat sederhana yang dibagi menjadi dua bagian, kode yang selalu berjalan, dan kode yang berjalan ketika dipanggil dengan "mulai" atau "berhenti".
Setelah Anda menyimpan file Anda ke lokasi yang benar, pastikan itu dapat dieksekusi dengan menjalankan "
chmod 755 /etc/init.d/blah
".Maka Anda perlu menambahkan tautan simbolis yang sesuai untuk menyebabkan skrip dieksekusi ketika sistem mati, atau muncul.
Cara paling sederhana untuk melakukan ini adalah dengan menggunakan perintah khusus Debian
update-rc.d
:sumber
systemd
untuk banyak hal, termasuk untuk konfigurasi bootup. Gunakansystemctl
untuk mengontrol dan mengkonfigurasisystemd
.Cara terbaik adalah memeriksa sumber paket distribusi Anda untuk layanan sistem reguler, misalnya untuk OpenSSH - Anda akan melihat apa praktik terbaiknya. Bagaimanapun, salah satu alasan di balik open-source adalah untuk dapat belajar dari sumber.
sumber
Gunakan Supervisor, program efektif yang mengelola dan mencatat aplikasi startup dengan argumen. Pelajari lebih lanjut dari http://supervisord.org/running.html dan (Ikuti instruksi instalasi.
Buat file conf di
/etc/supervisor/conf.d/{PROGRAM_NAME}.conf
dan Berikut adalah kodenya,Kemudian jalankan dari baris cmd:
supervisorctl reload
sumber
Menggunakannya
crontab
jauh lebih mudah.Gunakan
crontab -e
untuk mengedit crontab pengguna.Tambahkan baris berikut di akhir:
Contoh:
@reboot my_script.sh
@reboot python my_script.py arg1 arg2
Akhirnya gunakan
crontab -l
untuk memastikan skrip Anda ditambahkan ke daftar.sumber
Versi terbaru dari dukungan linux
systemd
(seperti yang dikatakan @AlexanderShcheblikin). Ini memiliki lebih banyak fitur dan lebih portabel daripada solusi khusus debian.Silakan baca panduan yang sangat bagus ini .
Berikut ini adalah referensi cepat dari minimum yang diperlukan:
myscript.sh
) Dengan izin yang dapat dieksekusi.myservice.service
) Dengan ekstensi ".service"/etc/systemd/system
dengan 644 izin yang berisi perintah untuk menjalankan skrip. Sebagai contoh,:
sudo systemctl enable myservice
untuk mengaktifkannya untuk memulai saat boot.sumber