Làm thế nào để bạn vô hiệu hóa một dịch vụ mới nhất trong Ubuntu 10.10?


27

Trong 10.10 mới bắt đầu được sử dụng thay vì sysvinit.

Bạn có thể xóa các dịch vụ mới bắt đầu mà bạn không muốn bằng cách xóa tệp thích hợp trong /etc/init/blah.conf

Tuy nhiên, đây có vẻ là một cách tiếp cận nặng tay. Làm thế nào để bạn cấu hình chính xác khởi động để có thể bật và tắt các dịch vụ này một cách có chọn lọc thông qua dòng lệnh?

Như một ví dụ thực tế, các câu trả lời được liệt kê ở đây để tắt gdm bằng cách sử dụng RCconf không còn hoạt động: Làm cách nào để ngăn GDM chạy khi khởi động trên Ubuntu?


Nb. Rõ ràng một số phiên bản của Ubuntu có mục 'dịch vụ' trong menu của màn hình đồ họa cho phép cấu hình này. Đó không phải là hiện tại của tôi. Tôi đặc biệt tìm kiếm một giải pháp dòng lệnh.
Doug

Câu trả lời được cập nhật nhiều nhất là trên Askubfox . Đọc các bình luận quá!
Marcello Nuccio


@Marcello Hừm ... có một điểm để nói điều đó? "Câu trả lời cập nhật nhất" vẫn là câu trả lời tương tự. xóa tập tin hoặc xóa một vài dòng đầu tiên của nó bằng tay.
Doug

giải pháp mới nhất là echo manual >> /etc/init/<service>.override, và điều này chỉ được đề cập trong các ý kiến ​​(và trong tài liệu chính thức). Tôi không tìm thấy nó dễ dàng, đó là lý do tại sao tôi đề cập đến nó ở đây.
Marcello Nuccio

Câu trả lời:


19

Nếu bạn xem trong /etc/init.d, bạn sẽ nhận thấy rằng bất kỳ dịch vụ nào được định cấu hình thông qua khởi động chỉ là các liên kết tượng trưng đến / lib / init / upstart để xóa chúng khỏi /etc/init.d chỉ cần xóa liên kết - không phải là tập lệnh .

Nếu bạn muốn có một giao diện này, bạn có thể cài đặt chkconfiggói ( apt-get install chkconfig) cung cấp công cụ dòng lệnh hữu ích:

# chkconfig --list
acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
alsa-mixer-save           0:off  1:off  2:off  3:off  4:off  5:off  6:off
anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on 
apport                    0:off  1:off  2:off  3:off  4:off  5:off  6:off
atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
.... and so on ....

Bạn có thể bật / tắt dịch vụ cho các cấp độ chạy cụ thể (hoặc chỉ bật và tắt chúng) với:

# chkconfig -s <service> <state/runlevels>

ví dụ:

# chkconfig -s gdm off

để tắt nó hoàn toàn,

# chkconfig -s gdm on

để bật nó với mặc định hoặc

# chkconfig -s gdm 34

để chỉ bật nó cho cấp 3 và 4.

Bạn thường sẽ tìm thấy lệnh này trên các hệ thống dựa trên RHEL (CentOS, Fedora, v.v.).

CẬP NHẬT

Điều này là dành riêng cho Ubuntu và gdm / kdm / bất cứ điều gì.

Khi gdm khởi động, nó gọi một tệp cấu hình khởi động /etc/init/gdm.conf

Tập tin này sau đó tham chiếu / etc / X11 / default-display-manager để xem nó có phải là trình quản lý hiển thị mặc định cho hệ thống hay không - nếu có thì nó sẽ khởi động.

/ Etc / X11 / default-display-manager chỉ chứa:

/usr/sbin/gdm

Bạn có thể thay thế điều này bằng một trình quản lý hiển thị khác hoặc xóa hoàn toàn tệp và nó sẽ không bắt đầu gdm.

Một dòng từ tệp /etc/init/gdm.conf:

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }

Đó là câu nói "Nếu tệp / etc / X11 / default-display-manager không tồn tại hoặc nếu nó không chứa /usr/sbin/gdmthì thoát"


Điều đó đã không làm việc. Cũng giống như RCconf, chkconfig không liệt kê gdm như một dịch vụ sẽ được bắt đầu ở bất kỳ cấp độ chạy nào. Tuy nhiên, khởi động lại, nó tải. chkconfig -s gdm tắt không ngăn nó bắt đầu.
Doug

2
Có một liên kết ở đây cũng cho thấy rằng chkconfig không phải là công cụ thích hợp để sử dụng: ubuntuforums.org/showthread.php?t=1559266
Doug

Tôi chưa bao giờ thích khởi nghiệp của Ubuntu - và Linux nói chung. Nó luôn luôn có vẻ rất lộn xộn và bùn. Hãy cho tôi RCng của FreeBSD bất cứ ngày nào. Dù sao - cụ thể đối với trình quản lý hiển thị của Ubuntu, bạn có những gì bản chỉnh sửa của tôi hiển thị ...
Majenko

+1 cho chính xác sau khi chỉnh sửa với các chi tiết để bắt đầu.
Doug

5

Tôi luôn thấy công cụ sysv-rc-conf rất hữu ích, nó có giao diện rất đẹp và dễ sử dụng.

cài đặt nó như thế này:

sudo apt-get update
sudo apt-get install sysv-rc-conf

sử dụng nó như thế này:

sudo sysv-rc-conf

1
Tôi không nghĩ rằng nó hoạt động cho các dịch vụ mới nhất mặc dù ..
Rajat Gupta

3

Đơn giản chỉ cần nhìn vào man 5 initvà bạn sẽ tìm thấy một giải pháp phù hợp hơn. Ví dụ ngắn: Giả sử chúng tôi có một dịch vụ gọi là "foobar", vì vậy sẽ có một tệp được gọi /etc/init/foobar.confvới cấu hình mới nhất của nó. Bây giờ bạn không muốn xóa tệp đó, cũng không phải sửa đổi nó - nhưng bạn không muốn dịch vụ này chạy? Vì vậy, đặt một tệp ghi đè bên cạnh nó : /etc/init/foobar.override, chứa (tùy chọn tiêu đề có mô tả và) thay vào đó start on/ stop ondòng bạn đặt một dòng có một từ : manual. Bằng cách này, bạn sẽ foobar.confbắt đầu sử dụng cơ bản , nhưng ghi đè định nghĩa khởi động để chỉ bắt đầu dịch vụ đó khi được thực thi thủ công (thông qua service foobar startví dụ của chúng tôi).


2

Đề nghị của tôi sẽ chỉ đơn giản là nhận xét tất cả các dòng "bắt đầu" và "dừng lại". Điều đó làm việc tốt với tôi khi tôi chạy "initctl show-config" để xem liệu tự động khởi động chương trình tôi muốn có bị vô hiệu hóa hay không.


1

Upstart là một trình quản lý init hướng sự kiện và runlevels không phải là cơ chế chính để quyết định khi nào dịch vụ bắt đầu. Thay vào đó, các dịch vụ được bắt đầu khi tất cả các phụ thuộc của chúng được thỏa mãn, điều này cho phép sự song song lớn hơn trong quá trình khởi động, tăng tốc quá trình khởi động.

Sử dụng Ubuntu 11.04, tôi có thể vô hiệu hóa GDM bằng cách chỉnh sửa tệp /etc/init/gdm.conf và xóa tất cả các mục "bắt đầu". Đây là bản chỉnh sửa trước của tôi:

start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
stop on runlevel [016]

Đây là bài chỉnh sửa của tôi:

start on
stop on runlevel [016]

1
Chính xác; tuy nhiên, điều này về cơ bản không tốt hơn là chỉ di chuyển / xóa tệp etc / init / gdm.conf; Tôi (vẫn) ngạc nhiên khi chỉnh sửa thủ công tệp cấu hình dường như là cách duy nhất để làm điều này.
Doug

1

Đây là một giải pháp:

http://ubuntuforums.org/showpost.php?p=9416839&postcount=3

@Matt Jenkins

Tôi chưa bao giờ thích khởi nghiệp của Ubuntu - và Linux nói chung. Nó luôn luôn có vẻ rất lộn xộn> và bùn. Hãy cho tôi RCng của FreeBSD bất cứ ngày nào. Dù sao - cụ thể cho trình quản lý hiển thị của Ubuntu> bạn có những gì bản chỉnh sửa của tôi hiển thị ...

Arch Linux có một hệ thống init đẹp. Tuy nhiên, systemd thổi bất kỳ hệ thống init nào khác ra khỏi hành tinh.

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.