Vô hiệu hóa vĩnh viễn dịch vụ ban đầu


10

Tôi vừa cung cấp một VPS mới chạy CentOS 6 và nó đi kèm với Apache.

Tôi muốn tắt Apache, vì tôi sẽ sử dụng Nginx thay thế.

Tôi biết tôi chỉ có thể xóa tập lệnh trong /etc/init.d/, nhưng tôi không muốn làm điều đó, bởi vì đó là một thứ chứng khoán đi kèm với hệ thống. Tôi muốn có một cách duyên dáng để vô hiệu hóa dịch vụ.

Tôi nghĩ rằng tôi sẽ có thể đặt một cái gì đó vào / etc / inittab, nhưng inittab chứa:

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 
id:3:initdefault:

Điều này khiến tôi tin rằng hệ thống đang chạy mới. Chà, tôi đã xem, và cách chính xác để vô hiệu hóa một dịch vụ khi mới bắt đầu là thêm một tệp ghi đè. Vì vậy, tôi chạy:

% 'manual' > /etc/init/httpd.override

Và khởi động lại máy chủ của tôi. Nhưng httpd vẫn đang chạy! Bối rối vì điều này, tôi quyết định kiểm tra xem mới bắt đầu có phải là dịch vụ init không, bằng cách chạy

% readlink /proc/1/exe
/sbin/init

Vâng, đó không phải là những gì tôi đã mong đợi để xem. Có lẽ tôi không chạy lên sau tất cả. Có một cách xác định để kiểm tra? Và nếu tôi đang chạy init, cách vô hiệu hóa dịch vụ vĩnh viễn là gì? Tôi là người mới đối với tất cả những điều này, và dường như có nhiều ý kiến ​​trái ngược nhau.

Cảm ơn mọi sự giúp đỡ của bạn.


Tại sao không loại bỏ apache nếu bạn sẽ không sử dụng nó?
Frederik Nielsen

Bởi vì tôi có thể muốn sử dụng nó trong tương lai, để ủy quyền các ứng dụng Python với mod_wsgi hoặc chạy PHP. Hiện tại, tôi không muốn sử dụng nó. Và đây có vẻ là một vấn đề tôi có thể gặp lại trong tương lai, với các dịch vụ khác nhau.
Max Bucknell

Câu trả lời:


16

Cách bạn vô hiệu hóa một dịch vụ theo bất kỳ phân phối có nguồn gốc RedHat nào bằng chkconfiglệnh:

# chkconfig httpd off

Và để dừng một dịch vụ đang chạy:

# service httpd stop

Những lệnh này sẽ làm điều đúng cho dù hệ thống của bạn đang chạy systemd, upstarthoặc vani SysVInit.

Đối với những gì nó có giá trị, mặc dù chạy upstarthầu hết các dịch vụ trong CentOS 6 thực sự sử dụng các init.dtập lệnh kế thừa , được đặt trong /etc/rc.d/rc<RUNLEVEL>.d. Đối với các dịch vụ này, chkconfigquản lý các liên kết tượng trưng trong /etc/rc.d/init.d.


Tôi đã tìm ra điều này bằng cách tìm kiếm thứ gì đó tương đương với update-rc.d từ câu trả lời của trillan. Chỉ là để trả lời câu hỏi của riêng tôi, nhưng bạn đánh bại tôi với nó. Cảm ơn rất nhiều, larsks.
Max Bucknell

4

Vô hiệu hóa dịch vụ bạn không muốn bắt đầu trong khi khởi động hệ thống bằng chkconfig .

Liệt kê các dịch vụ có sẵn với các tiểu bang của họ

chkconfig --list

Vô hiệu hóa dịch vụ ometpd trong runlevel 2345

chkconfig --level 2345 httpd off

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.