Di Windows saya memiliki manajer layanan, di mana saya melihat semua layanan sistem, yang dapat dimulai melalui Windows itu sendiri, saya mengatur pengguna yang digunakannya, manajemen hak ada di sana, dan saya dapat meneruskan variabel dan beberapa informasi lainnya ke layanan , saya dapat memberi nama mereka, dan saya dapat membuat layanan duplikat dari satu program dan seterusnya. Jadi saya memiliki alat manajemen utama di Windows.
Bagaimana saya bisa melakukan hal yang sama di Linux? Bagaimana saya bisa memicu untuk menjalankan "svnserve" saat startup, atau bagaimana saya bisa mengonfigurasi layanan agar berjalan dalam konteks khusus. Bagaimana saya bisa melihat semua layanan "terprogram"?
Jawaban yang Diterima:
Saat ini ada 3 sistem init utama yang digunakan oleh linux. Beberapa tahun yang lalu, hanya ada satu, SysVinit. Tetapi SysVinit sangat kekurangan dalam kemampuan seperti grafik ketergantungan layanan, jadi sudah tidak digunakan lagi di sebagian besar distro sekarang. Saat ini sebagian besar distro beralih ke systemd. Meskipun ada juga pemula.
Tapi inilah jawaban atas pertanyaan Anda untuk masing-masing dari 3 sistem init:
SysVinit
SysVinit saat ini digunakan oleh Debian dan RedHat. Meskipun versi RedHat (7) berikutnya akan menggunakan systemd.
Cara umum untuk mengaktifkan layanan SysVinit saat boot adalah dengan menghubungkannya di /etc/rc3.d
(atau /etc/rc2.d
). Semua layanan dapat ditemukan di /etc/init.d
. Namun perhatikan bahwa distro sering kali memiliki alat mereka sendiri untuk mengelola file-file ini, dan alat itu harus digunakan sebagai gantinya. (Fedora/RedHat memiliki service
dan chkconfig
, ubuntu memiliki update-rc.d
)
Mendaftarkan layanan:
ls /etc/init.d/
Mulai layanan:
/etc/init.d/{SERVICENAME} start
atau
service {SERVICENAME} start
Hentikan layanan:
/etc/init.d/{SERVICENAME} stop
atau
service {SERVICENAME} stop
Aktifkan layanan:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
(S95
digunakan untuk menentukan urutan. S01 akan dimulai sebelum S02, dll)
Nonaktifkan layanan:
rm /etc/rc3.d/*{SERVICENAME}
Sistem
Distribusi yang paling terkenal menggunakan systemd adalah Fedora. Meskipun itu digunakan oleh banyak orang lain. Selain itu, dengan Debian telah memilih untuk menggunakan systemd daripada pemula, itu akan menjadi sistem pemula defacto untuk sebagian besar distribusi (ubuntu telah mengumumkan bahwa mereka akan menjatuhkan pemula untuk systemd).
Mendaftarkan layanan:
systemctl list-unit-files
Mulai layanan:
systemctl start {SERVICENAME}
Hentikan layanan:
systemctl stop {SERVICENAME}
Aktifkan layanan:
systemctl enable {SERVICENAME}
Nonaktifkan layanan:
systemctl disable {SERVICENAME}
Pemula
Pemula dikembangkan oleh orang-orang Ubuntu. Tetapi setelah debian memutuskan untuk menggunakan systemd, Ubuntu mengumumkan bahwa mereka akan berhenti memulai.
Pemula juga sempat digunakan oleh RedHat, seperti yang ada di RHEL-6, tetapi tidak umum digunakan.
Terkait:Bagaimana tanggal coreutil berhasil mendapatkan hasil yang aneh?Mendaftarkan layanan:
initctl list
Mulai layanan:
initctl start {SERVICENAME}
Hentikan layanan:
initctl stop {SERVICENAME}
Aktifkan layanan:
2 cara sayangnya:
-
Akan ada file
/etc/default/{SERVICENAME}
yang berisi barisENABLED=...
. Ubah baris ini menjadiENABLED=1
. -
Akan ada file
/etc/init/{SERVICENAME}.override
. Pastikan berisistart
(atau tidak ada sama sekali), bukanmanual
.
Nonaktifkan layanan:
echo manual > /etc/init/{SERVICENAME}.override
Catatan:Ada juga sistem init 'OpenRC' yang digunakan oleh Gentoo. Saat ini Gentoo adalah satu-satunya distro yang menggunakannya, dan tidak sedang dipertimbangkan untuk digunakan, atau didukung oleh distro lain. Jadi saya tidak menutupi kegunaannya (walaupun menurut pendapat saya, saya dapat menambahkannya).