it-swarm-id.com

Perintah untuk mendaftar layanan yang dimulai saat startup?

Apakah ada perintah untuk mendaftar layanan yang berjalan saat startup? Saya membayangkan itu akan melibatkan parsing /etc/init.d/, dan berbagai direktori /etc/rc.*.

134
Eric H

Anda cukup menggunakan perintah initctl list Shell untuk membuat daftar isi /etc/init daripada perintah dbus-send yang disarankan.

104
Scott

Jawaban cepatnya adalah: Itu tergantung pada sistem init Anda.

Jawaban panjangnya adalah: Untuk versi Ubuntu saat ini, Anda mungkin memiliki campuran Pemula , dan SystemV . Versi Ubuntu yang lebih baru setelah 15,04 "Vivid Vervet" (dan distro Linux lainnya seperti RHEL/CentOS 7) bergerak untuk menggunakan SystemD .

Pemula

Untuk membuat daftar semua layanan:

initctl list

Untuk mendaftar semua layanan pemula dan menjalankan initctl show-config pada mereka, one-liner ini mungkin membantu:

initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config

Sistem V

Untuk membuat daftar semua layanan:

service --status-all

ATAU:

# for init scripts:
ls /etc/init.d/

# for runlevel symlinks:
ls /etc/rc*.d/

SystemD

Untuk membuat daftar semua layanan:

systemctl list-unit-files --type=service

ATAU:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service
110
TrinitronX

Direktori /etc/init.d dan /etc/rc.* telah digantikan oleh alat init 'upstart'. Meskipun skrip dalam direktori ini akan dieksekusi seperti yang diharapkan, metode baru untuk menjalankan berbagai hal di init ditentukan oleh file dalam /etc/init/

Anda dapat membuat daftar semua pekerjaan pemula dengan dengan menanyakan pemula di atas dbus:

dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
        /com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs

Anda mungkin harus mengubah 0_6 untuk mencerminkan versi pemula yang Anda miliki. Perintah ini berfungsi pada instal jelas saya.

13
Jeremy Kerr

Jika Anda ingin representasi grafis yang bagus dari layanan dan waktu yang diperlukan untuk mem-boot coba:

apt-get install bootchart
12
john

Id gunakan initctl show-config <servicename> untuk benar-benar mendapatkan detail kapan/jika layanan Anda akan mulai saat boot.

Seperti itu:

$ initctl show-config myservice
myservice
  start on runlevel [2345]
  stop on runlevel [!2345]

Atau untuk NFS4 idmap-daemon:

$ initctl show-config idmapd
idmapd
  start on (local-filesystems or mounting TYPE=nfs4)
  stop on runlevel [06]

chkconfig hanya disukai pada sistem berbasis RedHat imho.

11
CBmemnon

Pada 12,04 kita bisa menggunakan:

Sudo apt-get install chkconfig
chkconfig --list

tapi itu dihapus pada 12.1 .

Output sampel:

acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on

Selain layanan sistem dan skrip di bawah:

/etc/init.d/
/lib/systemd/system/
/etc/systemd/system/

Mungkin ada Aplikasi AutoStart juga, misalnya:

find / -name "*autostart*"

ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart"  "/usr/share/gnome/autostart"
0
Noam Manos