Bagaimana layanan memulai sangat tergantung pada distro Linux. Beri tahu kami apa yang ingin Anda capai (dan pada distro apa dan mungkin Lingkungan Desktop), karena saat ini saya pikir Anda mungkin tidak memikirkan masalah dengan benar.
xenoterracide
Jawaban:
23
Untuk menjalankan layanan tanpa atau sebelum masuk ke sistem (yaitu "saat boot"), Anda harus membuat skrip startup dan menambahkannya ke urutan boot.
Ada tiga bagian skrip layanan: mulai, berhenti dan mulai ulang.
Struktur dasar skrip layanan adalah:
Setelah Anda mengubah skrip sesuai keinginan Anda, cukup tempatkan di /etc/init.d/
Dan, tambahkan ke proses startup layanan sistem (di Fedora, saya bukan pengguna Ubuntu,> D):
chkconfig -add <ServiceName>
Layanan akan ditambahkan ke proses boot sistem dan Anda tidak perlu memulai lagi secara manual.
Perhatikan bahwa saat memulai, berhenti, dan mulai ulang biasanya cukup untuk skrip init sederhana. Anda mungkin juga ingin memasukkan tindakan 'status', yang mudah di Debian dan distro lain yang menyertakan status_of_proc () dalam paket fungsi init-nya. Paket yang dikelola dengan baik akan mencakup semua fungsi yang diperlukan oleh LSB ( refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/… ). Skrip init yang didistribusikan dengan tomcat di Ubuntu berisi semua tindakan ini, mungkin bertaruh untuk menggunakannya saja.
Steven D
19
Tergantung pada sistem init, Anda membuat skrip init secara berbeda. Fedora memberi Anda pemula dan systemd untuk dipilih, dan tentu saja kompatibilitas SysV.
Pemula
buat file definisi layanan sebagai /etc/init/custom-tomcat.conf
letakkan di dalam:
start on stopped rc RUNLEVEL=3
respawn
exec /path/to/your/tomcat --and --parameters
Dan Tomcat Anda harus mulai pada saat sistem mulai.
Systemd
buat definisi layanan di /etc/systemd/system/custom-tomcat.service
Tomcat adalah layanan yang cukup umum, saya akan merekomendasikan melihat skrip init yang disediakan oleh distro. Peluangnya bekerja dengan biner Anda yang disesuaikan, dengan sedikit atau tanpa tweaker.
Jika Anda memiliki crondaemon, salah satu kait waktu cron yang telah ditentukan adalah @reboot, yang secara alami berjalan saat sistem dimulai. Jalankan crontab -euntuk mengedit crontabfile Anda , dan tambahkan baris:
Apakah ini berlaku untuk semua startup, atau hanya reboot?
WhyNotHugo
Ini HANYA berlaku untuk fcron - bukan vixie-cron atau AFAIK cron lainnya.
Maciej Piechotka
@ Maciej Ini pasti berfungsi untuk vixie-cron; itulah yang saya gunakan
Michael Mrozek
@Hugo Semua startup
Michael Mrozek
6
Untuk hanya menjalankan skrip setelah komputer dimulai tetapi sebelum pengguna masuk, Anda cukup mengedit skrip /etc/rc.local yang dimaksudkan untuk menyelesaikan tugas ini dengan tepat.
Jawaban:
Untuk menjalankan layanan tanpa atau sebelum masuk ke sistem (yaitu "saat boot"), Anda harus membuat skrip startup dan menambahkannya ke urutan boot.
Ada tiga bagian skrip layanan: mulai, berhenti dan mulai ulang.
Struktur dasar skrip layanan adalah:
Setelah Anda mengubah skrip sesuai keinginan Anda, cukup tempatkan di /etc/init.d/
Dan, tambahkan ke proses startup layanan sistem (di Fedora, saya bukan pengguna Ubuntu,> D):
Layanan akan ditambahkan ke proses boot sistem dan Anda tidak perlu memulai lagi secara manual.
Tepuk tangan!
sumber
Tergantung pada sistem init, Anda membuat skrip init secara berbeda. Fedora memberi Anda pemula dan systemd untuk dipilih, dan tentu saja kompatibilitas SysV.
Pemula
/etc/init/custom-tomcat.conf
letakkan di dalam:
Dan Tomcat Anda harus mulai pada saat sistem mulai.
Systemd
/etc/systemd/system/custom-tomcat.service
letakkan di dalam:
dan aktifkan layanan Anda menggunakan
systemctl enable custom-tomcat.service
. Ini akan dimulai setiap boot normal.Tentu saja ada beberapa opsi konfigurasi untuk kedua sistem init, Anda dapat memeriksanya dalam dokumentasinya.
sumber
Tomcat adalah layanan yang cukup umum, saya akan merekomendasikan melihat skrip init yang disediakan oleh distro. Peluangnya bekerja dengan biner Anda yang disesuaikan, dengan sedikit atau tanpa tweaker.
sumber
Jika Anda memiliki
cron
daemon, salah satu kait waktu cron yang telah ditentukan adalah@reboot
, yang secara alami berjalan saat sistem dimulai. Jalankancrontab -e
untuk mengeditcrontab
file Anda , dan tambahkan baris:sumber
Untuk hanya menjalankan skrip setelah komputer dimulai tetapi sebelum pengguna masuk, Anda cukup mengedit skrip /etc/rc.local yang dimaksudkan untuk menyelesaikan tugas ini dengan tepat.
sumber
Anda dapat membuat skrip yang lebih canggih, yang memungkinkan Anda berjalan di bawah izin pengguna tertentu, sebagai berikut:
Skrip berjalan di /etc/init.d/myservice, dan Anda memulai layanan dengan menjalankan:
Baca halaman manual pada start-stop-daemon untuk memahami cara kerjanya.
sumber
Di Ubuntu atau Debian seperti yang dapat Anda gunakan, untuk menambahkan
untuk menghapus
Sampai jumpa! \Hai
bagus untuk mengimplementasikan status fungsi dan memuat ulang secara paksa agar menjadi LSB-compilant
sumber
service --status-all
daftar?