Bagaimana Anda menonaktifkan layanan pemula di ubuntu 10.10?

27

Pada 10.10 pemula digunakan sebagai ganti sysvinit.

Dimungkinkan untuk menghapus layanan pemula yang mengganggu yang tidak Anda inginkan dengan menghapus file yang sesuai di /etc/init/blah.conf

Namun, ini tampaknya merupakan pendekatan yang berat. Bagaimana Anda mengkonfigurasi pemula yang benar untuk dapat mengaktifkan dan menonaktifkan layanan ini secara selektif melalui baris perintah?

Sebagai contoh praktis, jawaban yang tercantum di sini untuk mematikan gdm menggunakan rcconf tidak lagi berfungsi: Bagaimana cara mencegah GDM agar tidak berjalan saat boot di Ubuntu?

Doug
sumber
Nb. Rupanya beberapa versi ubuntu memiliki item 'layanan' di menu desktop grafis yang memungkinkan ini untuk dikonfigurasi. Itu bukan milik saya. Saya secara khusus mencari solusi baris perintah.
Doug
Jawaban terbaru adalah di askubuntu . Baca komentar juga!
Marcello Nuccio
2
Ini sekarang didokumentasikan dalam paragraf Menonaktifkan Pekerjaan dari Memulai Secara Otomatis .
Marcello Nuccio
@ Marscello Hm ... apakah ada maksud untuk mengatakan itu? 'Jawaban terbaru' masih merupakan jawaban yang sama. hapus file atau hapus beberapa baris pertama secara manual.
Doug
solusi terbaru adalah echo manual >> /etc/init/<service>.override, dan ini hanya disebutkan dalam komentar (dan dalam dokumentasi resmi). Saya tidak menemukannya dengan mudah, itu sebabnya saya sebutkan di sini.
Marcello Nuccio

Jawaban:

19

Jika Anda melihat di /etc/init.d Anda akan melihat bahwa layanan apa pun yang dikonfigurasikan melalui pemula hanya tautan simbolis ke / lib / init / pemula, jadi menghapusnya dari / etc / init.d hanya menghapus tautan - bukan skrip .

Jika Anda menginginkan antarmuka untuk ini, Anda dapat menginstal chkconfigpaket ( apt-get install chkconfig) yang memberikan alat baris perintah yang berguna:

# chkconfig --list
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
alsa-mixer-save           0:off  1:off  2:off  3:off  4:off  5:off  6:off
anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on 
apport                    0:off  1:off  2:off  3:off  4:off  5:off  6:off
atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
.... and so on ....

Anda dapat mengaktifkan / menonaktifkan layanan untuk run-level tertentu (atau hanya menghidupkan dan mematikannya) dengan:

# chkconfig -s <service> <state/runlevels>

sebagai contoh:

# chkconfig -s gdm off

untuk mematikannya sepenuhnya,

# chkconfig -s gdm on

untuk mengaktifkannya dengan defaultsm atau

# chkconfig -s gdm 34

untuk hanya menyalakannya untuk menjalankan level 3 dan 4.

Anda biasanya akan menemukan perintah ini pada sistem berbasis RHEL (CentOS, Fedora, dll).

MEMPERBARUI

Ini khusus untuk Ubuntu dan gdm / kdm / apa pun.

Ketika gdm dijalankan, ia memanggil file konfigurasi pemula /etc/init/gdm.conf

File ini kemudian mereferensikan /etc/X11/ default-display-manager untuk melihat apakah itu adalah display manager default untuk sistem - jika kemudian dimulai.

/ Etc / X11 / default-display-manager hanya berisi:

/usr/sbin/gdm

Anda dapat mengganti ini dengan manajer tampilan lain, atau menghapus file seluruhnya dan itu tidak akan memulai gdm.

Baris dari file /etc/init/gdm.conf:

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }

Bunyinya "Jika file / etc / X11 / default-display-manager tidak ada, atau jika tidak mengandung /usr/sbin/gdmmaka keluar"

Majenko
sumber
Itu tidak berhasil. Sama seperti rcconf, chkconfig tidak mencantumkan gdm sebagai layanan yang harus dijalankan pada semua level run. Namun, memulai kembali, ini dimuat. chkconfig -s gdm off tidak mencegahnya dimulai.
Doug
2
Ada tautan di sini yang menunjukkan bahwa chkconfig bukan alat yang tepat untuk digunakan: ubuntuforums.org/showthread.php?t=1559266
Doug
Saya tidak pernah menyukai startup Ubuntu - dan Linux pada umumnya. Tampaknya selalu begitu berantakan dan kotor. Beri aku rcng FreeBSD setiap hari. Pokoknya - khusus untuk manajer tampilan Ubuntu Anda memiliki apa yang saya edit menunjukkan ...
Majenko
+1 untuk benar setelah diedit dengan detail untuk pemula.
Doug
5

Saya selalu menemukan alat sysv-rc-conf sangat membantu, ia memiliki antarmuka yang sangat bagus & mudah digunakan.

instal seperti ini:

sudo apt-get update
sudo apt-get install sysv-rc-conf

gunakan seperti ini:

sudo sysv-rc-conf
nmad
sumber
1
Saya tidak berpikir itu bekerja untuk layanan pemula ..
Rajat Gupta
3

Cukup lihat man 5 initdan Anda akan menemukan solusi yang lebih tepat. Contoh singkat: Katakanlah kita memiliki layanan yang disebut "foobar", sehingga akan ada file yang dipanggil /etc/init/foobar.confdengan konfigurasi pemula. Sekarang Anda tidak ingin menghapus file itu, atau memodifikasinya - tetapi Anda juga tidak ingin layanan ini dijalankan? Jadi menempatkan menimpa file selanjutnya untuk itu: /etc/init/foobar.override, mengandung (opsional header dengan deskripsi dan) sebaliknya start on/ stop onbaris Anda menempatkan garis dengan satu kata: manual. Dengan cara ini Anda memberi tahu pemula untuk menggunakan dasarnya foobar.conf, tetapi mengabaikan definisi startup untuk hanya memulai layanan itu ketika diberlakukan secara manual (melalui service foobar startdalam contoh kami).

Izzy
sumber
2

Rekomendasi saya adalah cukup dengan mengomentari semua baris "mulai" dan "berhenti". Itu bekerja dengan baik bagi saya ketika saya menjalankan "initctl show-config" untuk melihat apakah startup otomatis dari program yang saya inginkan dinonaktifkan.

pengguna35060
sumber
1

Pemula adalah manajer init yang digerakkan oleh peristiwa , dan runlevel bukan mekanisme utama untuk memutuskan kapan suatu layanan dimulai. Sebagai gantinya, layanan dimulai ketika semua dependensinya dipenuhi, yang memungkinkan paralelisme yang lebih besar selama boot, mempercepat proses booting.

Menggunakan Ubuntu 11.04, saya dapat menonaktifkan GDM dengan mengedit file /etc/init/gdm.conf, dan menghapus semua entri "mulai". Inilah pra-edit saya:

start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
stop on runlevel [016]

Ini post-edit saya:

start on
stop on runlevel [016]
Jason Martens
sumber
1
Benar; namun, ini pada dasarnya tidak lebih baik dari hanya memindahkan / menghapus file etc / init / gdm.conf; Saya (masih) kagum bahwa mengedit file konfigurasi secara manual tampaknya menjadi satu-satunya cara untuk melakukan ini.
Doug
1

Inilah solusinya:

http://ubuntuforums.org/showpost.php?p=9416839&postcount=3

@ Mat Jenkins

Saya tidak pernah menyukai startup Ubuntu - dan Linux pada umumnya. Tampaknya selalu begitu berantakan dan kotor. Beri aku rcng FreeBSD setiap hari. Pokoknya - khusus untuk manajer tampilan Ubuntu> Anda memiliki apa yang saya edit tampilkan ...

Arch Linux memiliki sistem init yang bagus. Namun, systemd mengeluarkan sistem init lain dari planet ini.

Pawlo
sumber