Làm cách nào để ngăn Apache2 tự động khởi động khi khởi động?


173

Làm cách nào để ngăn Apache2 tự động khởi động khi khởi động? Tôi dường như không thể tìm thấy một tùy chọn vô hiệu hóa khởi động tự động khi tôi bật máy.


1
Có lẽ ai đó có thể cụ thể hơn, nhưng tôi có thể chỉ cho bạn đi đúng hướng ... trong / etc, có các thư mục cho RC * .d, chứa tất cả các tập lệnh start / stop, được gọi là, tôi nghĩ, init scripts. Bạn sẽ thấy các liên kết đến các tập lệnh nằm trong /etc/init.d và bắt đầu bằng "k" hoặc "s", cho "kill" hoặc "start" và một số là thứ tự.
Marty Fried

Vâng, tôi biết về các thư mục /etc/rcX.d, nhưng tôi đã tìm kiếm nó để tìm hiểu về một số công cụ đẹp hơn, chỉ là đổi tên các tệp theo cách thủ công (tuổi thọ quá ngắn). update-rc.dđã lấp đầy khoảng trống này.
Tomasz Gandor

Câu trả lời:


160

Trong thư mục, /etc/init.d/bạn sẽ tìm thấy tất cả các tập lệnh init cho các dịch vụ khởi động khác nhau, như apache2, mạng, v.v.

Tùy thuộc vào runlevel máy tính khởi động, các dịch vụ khác nhau được bắt đầu. Vì vậy, từ /etc/init.d/thư mục, mỗi "dịch vụ" được liên kết với một / nhiều / không có thư mục cấp chạy được đặt tên từ rc0.dđến rc6.d.

Để đơn giản, có một công cụ để xóa / thêm các liên kết này, do đó loại bỏ hoặc thêm tập lệnh vào và khởi động.

Để tắt apache2, chỉ cần gõ:

sudo update-rc.d apache2 disable

Điều này vô hiệu hóa apache2 khi khởi động nhưng không được gỡ bỏ để có thể bật lại. Để loại bỏ các tập lệnh khởi động apache2, hãy làm như sau:

Để loại bỏ apache2, chỉ cần gõ:

sudo update-rc.d -f  apache2 remove

Làm điều này sẽ khiến tất cả các thư mục runlevel được liên kết với apache2 bị xóa.


2
chkconfig cũng có thể giúp - "chkconfig {service_name} tắt"
MCR

Không hoạt động nữa:The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs. (...)
TomDogg

2
@TomDogg, bạn có thể chỉ định các phiên bản bạn đang làm việc không? Câu trả lời này hoạt động cho Apache 2 trên Ubuntu 14.04.3
Dale Anderson

1
Làm thế nào để khôi phục dịch vụ?
Eugen Konkov

9
Cảnh báo! Điều này sẽ XÓA dịch vụ! Sử dụng sudo update-rc.d apache2 disable.
Eduardo Cuomo

194

bạn chỉ có thể vô hiệu hóa nó bằng cách:

sudo update-rc.d apache2 disable

và sau đó nếu bạn muốn kích hoạt lại:

sudo update-rc.d apache2 enable

tùy thuộc vào dự án tôi đang làm việc, thật tiện lợi khi có dịch vụ thuận tiện, nếu tôi muốn kích hoạt lại nó.


4
enableđã cho tôi một lỗi như thế runlevel arguments (none) do not match LSB Default-Start values, nhưng sudo update-rc.d apache2 defaultsdường như đã kích hoạt lại thành công.
ở đây

2
@here sudo update-rc.d apache2 enablechơi như mong đợi đối với tôi
Georgios Pligoropoulos

1
Trên Ubuntu Trusty, nó cho tôi biết "API vô hiệu hóa | kích hoạt không ổn định và có thể thay đổi trong tương lai."
Tanner

1
Không hoạt động - error: no runlevel symlinks to modify, aborting!. Tuy nhiên, apache2 đang chạy và tự động khởi động.
Daniel Kmak

Không hoạt động nữa:update-rc.d: error: no runlevel symlinks to modify, aborting!
TomDogg

55

Với systemdbây giờ chúng ta có thể sử dụng systemctllệnh để ngăn chặn một dịch vụ từ tự động bắt đầu từ lúc khởi động.

đây là một ví dụ:

sudo systemctl disable apache2

Bạn vẫn có thể bắt đầu và dừng dịch vụ nhưng nó sẽ không khởi động khi khởi động.


2
Linux Mint vẫn dựa trên Ubuntu 14.04. Ubuntu bắt đầu sử dụng systemd từ 15.04 trở đi.
twan163

1
@dragonmnl như twan163 đã nói, systemd dành cho các phiên bản mới hơn (debian jessie hoặc tương đương +)
mchid

1
điều này hoạt động rất tốt trên Debian
Anupam

1
câu trả lời đúng cho debian 9+
John

1
Nếu gặp phải update-rc.d: error: no runlevel symlinks to modify, aborting!, tạo lại bất kỳ simlink bị thiếu dưới đây; sau đó thử lại: /etc/rc0.d/K01 <service> /etc/rc1.d/K01 <service> /etc/rc2.d/S99 <service> /etc/rc3.d/S99 <service> / etc / RC4.d / S99 <dịch vụ> /etc/rc5.d/S99 <dịch vụ> /etc/rc6.d/K01 <dịch vụ>
Amil Waduwawara

5

Tôi nghĩ rằng tôi chỉ cần thêm vào câu trả lời của @gsullins và @tomodachi, cho những độc giả tương lai đã sử dụng câu trả lời được chấp nhận.

Nếu bạn đã sử dụng:

sudo update-rc.d apache2 remove

Bạn có thể sử dụng đối số defaultsđể thêm apache2 vào autostart

sudo update-rc.d apache2 defaults

Sau đó, bạn có thể bật / tắt

sudo update-rc.d apache2 disable
sudo update-rc.d apache2 enable
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.