Hentikan program yang berjalan saat startup di Linux

29

Bagaimana cara menghentikan program yang berjalan saat startup di Linux. Saya ingin menghapus beberapa aplikasi dari startup agar mereka dapat dikelola oleh supervisordmis. Apache2

Frozenskys
sumber
Itulah mengapa saya tidak memberi tag ... Saya mencari semua variasi karena saya bekerja dengan beberapa distro yang berbeda.
Frozenskys

Jawaban:

29

Bergantung pada distro Anda, gunakan chkconfig atau update-rc.d tool untuk mengaktifkan / menonaktifkan layanan sistem.

Pada sistem gaya redhat / suse / mandrake:

sudo chkconfig apache2 off 

Di Debian:

sudo update-rc.d -f apache2 remove

Lihat halaman manual mereka untuk info lebih lanjut.

jacksonh
sumber
Mengapa Anda perlu -f (saya anggap itu kekuatan) pada distro berbasis Debian?
Frozenskys
2
Ada dua set file yang sedang dimainkan di sini. Anda memiliki skrip init aktual di /etc/init.d/ dan Anda memiliki tautan ke sana di direktori runlevel Anda /etc/rcrunlevel.d/. Orang-orang ini menunjuk ke skrip di /etc/init.d/ Jika Anda tidak menggunakan -f update-rd.d akan gagal UNLESS skrip di /etc/init.d/ sudah dihapus. Jika Anda menggunakan -f update-rc.d akan menghapus file tautan dengan benar terlepas dari apakah script /etc/init.d/ dihapus atau tidak.
jacksonh
Ah, itu masuk akal, saya lupa bahwa skrip runlevel hanyalah tautan ke skrip init. Terima kasih atas penjelasan ekstra.
Frozenskys
6

Jika Anda berurusan dengan sistem Ubuntu modern dan beberapa distro lain, Anda mungkin harus berurusan dengan kombinasi skrip init tradisional dan skrip pemula. Mengelola skrip init dicakup oleh jawaban lain. Berikut ini adalah salah satu cara untuk menghentikan layanan pemula mulai dari saat boot:

# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled

Masalah dengan metode ini adalah tidak memungkinkan Anda untuk memulai layanan menggunakan:

# service start servicename

Alternatif untuk ini adalah membuka servicename.conffile di editor favorit Anda dan komentar setiap baris yang dimulai dengan:

start on

Yaitu, ubah ini menjadi

#start on ...

di mana "..." adalah apa pun setelah "mulai" sebelumnya. Dengan cara ini, ketika Anda ingin mengaktifkannya kembali, Anda tidak harus mengingat apa parameter "mulai" itu.

Terakhir, jika Anda memiliki versi baru pemula, Anda cukup menambahkan kata "manual" ke akhir file konfigurasi. Anda dapat melakukan ini langsung dari shell:

# echo "manual" >> /etc/init/servicename.conf

Ini akan menyebabkan pemula mengabaikan frasa "mulai" sebelumnya di dalam file.

Steven D
sumber
2

Pada sistem Fedora dan RHEL Masa Depan yang terbaru

systemctl disable httpd.service

akan menonaktifkan layanan httpd

Alastair
sumber
Terima kasih! Saya telah mencoba banyak metode, tetapi systmctlperintah ini bekerja dengan baik.
loved.by.Yesus
1

Untuk membuat daftar semua layanan startup

    systemctl

Untuk menghentikan layanan agar tidak berjalan saat start up

    sudo systemctl disable servicename

Misalnya jika kita perlu berhenti menjalankan ssh server saat startup

    sudo systemctl disable sshd.service

Kami dapat mengaktifkan ini lagi menggunakan

    sudo systemctl enable sshd.service

Hampir setiap distribusi linux menggunakan systemd untuk layanan startup bootstrap. Jadi perintah di atas berfungsi untuk sebagian besar distro.

Pangeran
sumber
Selamat datang di U&L, dan terima kasih atas kontribusi Anda! Saya ingin menunjukkan bahwa pertanyaan ini berusia sekitar delapan tahun sekarang, jadi jawaban yang diterima benar untuk saat itu. Menggunakan systemctl mungkin benar sekarang , tetapi itu benar untuk pertanyaan yang berbeda .
Jeff Schaller
@Prince terima kasih atas penjelasan terperinci. Ini membantu saya untuk memahami cara kerja startup boot di Xubuntu saya.
loved.by.Yesus
0

Slackware dan Arch linux memiliki metode yang sama untuk menghentikan / memulai proses saat boot, berbeda dari contoh gaya Ubuntu dan Redhat yang diberikan di atas.

Di Slackware dan Arch linuxes, skrip sh ada di direktori /etc/rc.d, biasanya satu skrip per daemon, atau satu skrip per subsistem.

Sebagai contoh, Slackware memulai server web Apache dengan sebuah skrip /etc/rc.d/rc.httpd, dipanggil pada waktu yang tepat selama startup sistem dengan argumen "mulai". Arch linux memiliki skrip dengan nama berbeda, tetapi hal yang sama terjadi.

Agar beberapa proses tidak dimulai saat boot sistem, di Slackware, Anda cukup membuat skrip yang sesuai di /etc/rc.d tidak dapat dieksekusi. Untuk mencegah Apache memulai pada boot berikutnya:

chmod -x /etc/rc.d/rc.httpd

Untuk menghentikan Apache yang memulai saat boot: /etc/rc.d/rc.httpd stop Anda harus root.

Lengkungan sedikit lebih kompleks. File /etc/rc.conf, skrip shell, memiliki array DAEMONS. Agar Apache tidak mulai saat boot, Anda harus mengubah baris ini di /etc/rc.conf:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)

Ke baris ini:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)

Untuk menghentikan apache yang sudah dijalankan, Anda akan menjalankan /etc/rc.d/httpd stopsebagai root.

Bruce Ediger
sumber
0

Pada Ubuntu 10,04 Anda dapat mengontrol beberapa program startup dari GUI.

SystemPreferencesStartup Applications

Preferensi Aplikasi Startup

jjclarkson
sumber
1
Gambar asli sudah tidak ada lagi.
tshepang
-1

1) ketuk superkey pada keyboard Anda 2) cari 'Aplikasi Startup' 3) pilih program yang ingin Anda nonaktifkan 4) tekan seperti untuk jawaban ini jika worx.

Bhasha Bhavanishankar
sumber