Bagaimana saya mencegah layanan Linux memulai otomatis?

11

Saya baru saja pindah dari Windows ke Linux (xubuntu)

Saya seorang pengembang dan telah menginstal semua yang saya butuhkan, LAMP. Di Windows saya dulu mematikan semua layanan yang tidak perlu - saya tidak perlu layanan Apache atau MySQL berjalan sepanjang waktu. Setiap kali saya membutuhkan MySQL, saya biasa menggunakan:

net start mysql

Bagaimana saya melakukan hal yang sama di Linux?

  1. Menonaktifkan daemon yang tidak diperlukan dari memulai otomatis?
  2. Memulai mereka hanya ketika saya membutuhkannya?
Aviv
sumber
3
Saya pikir Anda harus menyertakan versi tepat ubuntu yang Anda gunakan. Versi ubuntu baru menggunakan pemula, yang memiliki gotcha sendiri.
vtest
Sunting: Saya menggunakan Xubuntu versi terbaru 10.04, tetapi id tidak ingin menggunakan dan GUI untuk ini, hanya dari terminal. Sepertinya @prhq mendapatkan sesuatu dalam jawabannya. Apa itu pemula?
Aviv
Milik tempat lain, baik pada Server Fault atau Unix. Masih berguna.
ripper234

Jawaban:

10

Di sebagian besar distribusi linux, Anda dapat memulai / menghentikan layanan secara manual dengan (sebagai root atau menggunakan sudo) menjalankan perintah berikut:

# /etc/init.d/apache2 start
# /etc/init.d/mysqld start

# /etc/init.d/apache2 stop
# /etc/init.d/mysqld stop

Layanan mana yang dimulai secara otomatis dikendalikan oleh tautan file di /etc/rc[runlevel[.d/. Temukan runlevel Anda saat ini dengan menggunakan perintah "runlevel" sebagai root

# runlevel
N 2

Yang di sini menunjukkan runlevel 2 Sekarang Anda hanya perlu menghapus file-file itu di /etc/rc2.d/ yang tidak ingin Anda mulai.

Menghapus apache dan Mysql di desktop biasanya ok, tetapi berhati-hatilah dengan menghapus layanan lain.

hultqvist
sumber
3
Ini agak menyesatkan, bahkan jika Anda mengatakan "sebagian besar distribusi". Saya akan memenuhi syarat resep Anda sebagai distro khusus.
vtest
Yang mana yang ada dalam pikiran Anda? Saya hanya bisa memikirkan ArchLinux (tetapi para pengguna itu harus sudah tahu apa yang mereka lakukan). Tentu saja beberapa distro memiliki alat khusus, tetapi teknik di atas berfungsi juga.
hultqvist
Cukup aneh, saya dapat melihat file bernama S91apache2 di direktori /etc/rc2.d, saya kira itu memulai apache2 ... tetapi saya tidak dapat menemukan file apa pun mengenai MySQL. Di mana saya bisa belajar tentang daemon start otomatis ini?
Aviv
Maka server mysql mungkin tidak dikonfigurasi untuk mulai otomatis. Situs ini sepertinya memiliki penjelasan yang bagus: yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html
hultqvist
Perhatikan bahwa di bawah * BSD dan pohon Slackware, direktori tersebut adalah /etc/rc.d/.
new123456
13

Untuk versi Ubuntu yang menggunakan systemd (15,04 dan lebih baru) gunakan:

systemctl disable service

Ini akan melakukan pekerjaan. Ini akan menonaktifkan layanan dan tidak akan memulai kembali setelah reboot. Untuk mengaktifkan sementara, cukup mulai layanan. Tidak diaktifkan .

Untuk menemukan nama layanan gunakan

service --status-all

Perintah lain adalah:

systemctl start service- Gunakan untuk memulai layanan. Tidak bertahan setelah reboot

systemctl stop service- Gunakan untuk menghentikan layanan. Tidak bertahan setelah reboot

systemctl restart service - Gunakan untuk memulai kembali layanan

systemctl status service- Menunjukkan status layanan. Memberitahu apakah suatu layanan sedang berjalan.

systemctl enable service- Menyalakan layanan, pada reboot berikutnya atau pada acara mulai berikutnya. Ini berlanjut setelah reboot.

systemctl disable service- Menonaktifkan layanan pada reboot berikutnya atau pada perhentian berikutnya. Ini berlanjut setelah reboot.

Nandesh
sumber
2
Sayang bukan jawaban yang diterima :). Terima kasih, saya benar-benar lupa tentang perintah itu.
Nordes
8

Ubuntu 10,04 berada di tengah-tengah transisi antara dua sistem manajemen layanan: SysVinit (sistem tradisional, yang digunakan oleh sebagian besar distribusi Linux) dan Pemula (sistem yang lebih baru didorong oleh Ubuntu dan menjadi tersedia dalam lebih banyak dan lebih banyak distribusi).

Skrip manajemen layanan SysVinit berada di /etc/init.d. Anda dapat memulai layanan dengan /etc/init.d/SERVICENAME startdan menghentikannya /etc/init.d/SERVICENAME stop. Apakah layanan dimulai secara otomatis saat boot tergantung pada keberadaan tautan simbolik di /etc/rc?.dmana ?digit dari 2hingga 5( runlevel ). Cara termudah untuk mencegah layanan memulai secara otomatis saat boot adalah menggunakan update-rc.d SERVICENAME disable.

File konfigurasi manajemen layanan pemula berada di /etc/init. Anda dapat memulai layanan dengan start SERVICENAMEdan menghentikannya stop SERVICENAME. File konfigurasi /etc/init/SERVICENAME.confberisi garis yang menunjukkan kapan harus memulai layanan: start on …. Cara mudah menonaktifkan layanan ini adalah dengan mengubah jalur itu start on never and (…). Jika Anda tidak ingin mengedit file, Anda juga dapat menonaktifkan layanan sepenuhnya tanpa mengacaukan sistem pengemasan dengan mengganti nama untuk tidak berakhir .conf.

dpkg-divert --add --local --divert /etc/init/foo.conf.disabled --rename /etc/init/foo.conf

Pada Ubuntu 10,04, Apache dilengkapi dengan skrip SysVinit dan Mysql dilengkapi dengan skrip Upstart.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Apakah mengedit servicename.conf benar-benar cara yang disukai? Terutama ketika pembaruan secara teoritis dapat memperbarui file-file konfigurasi dan mengesampingkan perubahan Anda
Masse
@Masse: Ini tidak selalu merupakan cara yang disukai, tetapi memiliki keuntungan untuk selalu bekerja. Beberapa layanan membaca file /etc/defaultdan memiliki START_FOOopsi di sana yang dapat Anda matikan, tetapi banyak yang berharap untuk menjalankannya jika sudah diinstal. Pembaruan tidak akan menimpa perubahan Anda tanpa diminta karena ini semua adalah file konfigurasi.
Gilles 'SO- berhenti menjadi jahat'
Wow. Ini sepertinya langkah mundur yang besar.
Masse
@Masse: Conffile dimaksudkan untuk diedit oleh administrator. Tetapi jika Anda tidak ingin melakukan itu, Anda juga dapat menggunakan dpkg-divertuntuk mengganti nama file layanan. Namun jika Anda melakukannya, Anda tidak akan dapat memulai layanan secara eksplisit.
Gilles 'SO- berhenti bersikap jahat'