it-swarm-vi.tech

Vô hiệu hóa một dịch vụ từ bắt đầu tại tất cả các runlevels?

Tôi có một dịch vụ foo hiện đang bắt đầu tại runlevel 3 trở lên. Làm thế nào tôi có thể ngăn nó làm như vậy, mà không sử dụng update-rc.d foo stop 3 ., mà (nếu tôi hiểu chính xác) sẽ tắt dịch vụ ở mỗi lần thay đổi runlevel.

(ví dụ: nếu tôi ở runlevel 1 và bật foo, thì khi tôi đổi thành runlevel 3 nó sẽ bị tắt, không?)

Chạy Debian GNU/Linux Lenny.

61
lfaraone

Thuật ngữ "dừng" không ngăn trình nền bắt đầu mà thay vào đó tắt nó trong khi nhập runlevel được chỉ định.

Nếu bạn chỉ muốn xóa một dịch vụ/trình nền khỏi một runlevel duy nhất, update-rc.d như đã chỉ ra bei freiheit hoặc chỉ cần xóa symlink khỏi /etc/rcX.d/, trong đó X là runlevel của bạn. Nếu bạn không muốn dịch vụ bắt đầu tự động, update-rc.d -f foo remove sẽ thực hiện các mẹo.

58
PEra

Định cấu hình Ứng dụng Khởi động Linux bằng sysv-rc-conf :

apt-get install sysv-rc-conf

Như những người khác đã chỉ ra, đây cũng là pdate-rc.d cho dòng cmd.

Ví dụ: chạy

update-rc.d Apache2 disable

để vô hiệu hóa Apache2 từ tất cả các cấp chạy.

56
Not Now

Ngắn:

Không có cách đáng tin cậy để làm điều này một cách nhanh chóng.

Dài:

Debian hiện tại (Debian không ổn định kể từ 2012-06-01) hiện không có cách nào đáng tin cậy để vô hiệu hóa một dịch vụ/trình nền. - Bởi vì một bản nâng cấp của gói daemon chạy vô điều kiện/hành động /etc/init.d/package khởi động lại, có bị vô hiệu hóa cho runlevel này hay không.

Để chắc chắn rằng một daemon không bắt đầu, bạn có thể:

  • gỡ cài đặt nó
  • tạo một chuyển hướng cục bộ của tập lệnh /etc/init.d/xyz (theo cách này, sẽ không có công cụ nào tìm thấy nó)
  • sử dụng/lạm dụng một tệp cấu hình của gói tương ứng để kích hoạt một lối ra sớm của tập lệnh đó (ví dụ: đặt một lối thoát ra trước đầu vào/etc/default/xyz trong trường hợp nó có nguồn gốc từ tập lệnh init)
  • hãy tìm trong init-script đó để biết các cách chính thức được xác định trước

Có/là (?) Một số bước init-chính sách-một cái gì đó cho các tập lệnh init trong Debian, được cho là để lấp đầy chức năng còn thiếu này. - Tôi đã thử sử dụng nó, thấy nó phức tạp, tìm thấy một lỗi và không bao giờ chạm vào nó nữa.

Cập nhật:

Chuyển sang hệ thống của Cameron, một giải pháp thay thế cho hệ thống khởi xướng. Một gói debian tồn tại và bạn có thể vô hiệu hóa một dịch vụ với cái gì đó như thế này:

cd /etc/systemd/system
ln -s /dev/null xyz.service
15
Robert Siemer

Chạy lệnh này

apt-get cài đặt RC

Sau khi cài đặt, hãy chạy RCconf trong SSH và bạn sẽ nhận được một hộp thoại hiển thị tất cả các dịch vụ được thiết lập để chạy khi khởi động. Chọn những cái bằng cách nhấn Space để tắt/bật cụ thể và bạn đã hoàn tất, chỉ cần nhấp vào Ok và dịch vụ đó sẽ không bận tâm để bắt đầu lại lần khởi động tiếp theo. Đang sử dụng điều này trong nhiều năm. công cụ tiện dụng cho người dùng Debian/Ubuntu như tôi.

5
Mark Levinsky

Tôi nghĩ rằng điều này sẽ làm công việc: insserv -r foo

3
user38551

Tôi bối rối những gì bạn đang cố gắng thực hiện.

Những cấp độ chạy nào bạn muốn foo chạy trong?

Nếu bạn luôn muốn nó chạy, hãy sử dụng update-rc.d foo defaults; sẽ dừng nó ở 0, 1 và 6, trong khi để nó chạy ở 2, 3, 4 và 5. (1 không nên chạy bất cứ thứ gì ngoài Shell, 0 và 6 bị dừng và khởi động lại)

Nếu bạn muốn chỉ định chính xác mức độ chạy để chạy trong:

update-rc.d foo stop 0 1 6 3 . start 2 4 5 .
2
freiheit

Bắt đầu sử dụng insserv từ Debian7

Xuất tất cả các dịch vụ và thông tin runlevel

insserv --showall

Xóa các tập lệnh được liệt kê khỏi tất cả các runlevels

insserv --remove [specify_script]
1
cocoa

Tại sao bạn không sao lưu tập lệnh khởi động ở một nơi khác và xóa nó trong /etc/init.d/? Nếu update-rc.d không hoạt động.

0
Kosaka Honoka

Trình quản lý khởi động của Ubuntu là loại ánh sáng sysv-rc-conf , phiên bản GUI thân thiện hơn và nhiều người đọc chủ đề này sẽ đánh giá cao điều đó.

http://www.marzocca.net/linux/bum.html

0
the_guv

Trên hệ thống dựa trên Red Hat, bạn có thể sử dụng

chkconfig httpd off
chkconfig httpd --del

để loại bỏ máy chủ khỏi runlevels

trên hệ thống dựa trên debian, tất cả các dịch vụ được cho là bắt đầu bởi các tệp được tìm thấy trong thư mục /etc/rc?.d/ các tệp này sau đó có một liên kết tượng trưng đến các tệp tương ứng trong thư mục /etc/init.d/. Nếu bạn muốn một dịch vụ không bắt đầu theo mặc định thì bạn có thể đổi tên/xóa nó khỏi thư mục /etc/rc?.d và thay đổi của bạn sẽ được duy trì khi nâng cấp gói miễn là một trong các liên kết bắt đầu vẫn xuất hiện ở một trong các thư mục khác (3,4 và 5). Hoặc bạn có thể sử dụng lệnh update-rc.d để thay đổi (các) liên kết và nếu bạn muốn bắt đầu dịch vụ sau đó, bạn có thể sử dụng /etc/init.d/service_name bắt đầu nếu bạn rời khỏi điểm bắt đầu, nó sẽ cung cấp cho bạn các tùy chọn có thể được sử dụng như dừng, khởi động lại, tải lại ...

Tôi nghĩ rằng bạn có thể sử dụng sysv-rc-conf để vô hiệu hóa nó mặc dù.

0
Rodent43
Sudo update-rc.d SERVICE disable

Nếu bạn muốn chỉ định cấp độ chạy.

Sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]

Nhớ thay đổi dịch vụ thành tên của chương trình.

Sudo service SERVICE restart
0
Eddie