Hiện nay có thực sự ba cách khác nhau đối với phần mềm để được bắt đầu như một vụ trong windows, Doc, Mới nổi và lệnh. Một vụ là xác định ở đây như là một chương trình chạy bởi hệ thống trong nền là trái ngược với một bắt đầu và chạy trực tiếp của các người.
Doc
Cách truyền thống để bắt đầu dịch vụ công nhận là nơi một kịch bản trong /etc/init.d
và sau đó, sử dụng những update-rc.d
lệnh (hoặc ở red hat dựa phân phối, chkconfig
) cho phép hoặc vô hiệu hóa nó.
Này lệnh sử dụng một số hơi phức tạp logic để tạo liên kết mềm trong /etc/rc#.d
rằng , kiểm soát thứ tự của bắt đầu dịch vụ. Nếu bạn chạy ls /etc/rc2.d
bạn có thể thấy để mà dịch vụ sẽ bị giết với một tên tập tin như thế K##xxxx
và bắt đầu với tên tập tin S##xxxx
. Những ##
trong S##xxxx
có nghĩa là "hãy bắt đầu hàng" cho dịch vụ xxxx
. Ngược lại, ##
trong K##xxxx
có nghĩa là giết để cho dịch vụ xxxx
.
Một vấn đề lớn với Doc đó là khi khởi động hệ thống, tất cả mọi thứ phải được thực hiện trong nối, có một điều khác, làm cho hệ thống khởi động lần thực sự chậm. Nỗ lực được thực hiện để parallelize này, nhưng họ đã bừa bãi và khó để tận dụng. Đây chính là lý do mà Mới nổi được tạo ra.
Mới nổi
Mới nổi sử dụng định nghĩa công việc trong các tập tin /etc/init
để xác định trên những sự kiện một vụ nên được bắt đầu. Vì vậy, khi hệ thống khởi động, quy trình mới nổi sự kiện khác nhau, và sau đó có thể bắt đầu nhiều dịch vụ tại song song. Điều này cho phép chúng hoàn toàn sử dụng những tài nguyên của các hệ thống, ví dụ, bởi bắt đầu một đĩa-ràng buộc vụ trong khi một ĐIỀU ràng buộc vụ chạy, hay là chờ động địa chỉ IP được giao.
Bạn có thể xem tất cả các mới nổi việc tập tin bằng cách chạy ls /etc/init/*.conf
Hãy để tôi chỉ dừng lại đây và nói rằng, nếu bạn không biết những gì một dịch vụ hay cái gì đó không, KHÔNG vô hiệu hóa nó!
Không phải tất cả dịch vụ đã được chuyển đến nổi. Trong khi làm việc trên máy chủ đội tại Kinh điển cho những tháng vừa qua, tôi đã từng làm việc trên một số chuyển đổi công việc, các tập tin và đẹp nhất mà nó cho phép người ta thoát khỏi tất cả các kịch bản "ma" và chỉ cần đặt trong một vài lệnh ở đây và ở đó để xác định chính xác làm thế nào để bắt đầu phục vụ, và không có gì hơn. Nhưng bây giờ, chỉ một số ít các truyền thống mạng dịch vụ như thế mực và samba đã được chuyển đổi.
Là một dịch vụ mới nổi-dựa?
Để tìm ra nếu một dịch vụ mới nổi dựa trên, bạn có thể chạy tình trạng lệnh:
status servicename
Nếu nó là một mới nổi công việc, nó sẽ cho thấy điều này:
$ status statdstatd start/running, process 942
Nhưng nếu nó không phải, anh sẽ thấy một cái gì đó nhiều như này:
$ status apache2status: Unknown job: apache2
Trong trường hợp này, apache2
chưa được chuyển đến mới nổi. Vì vậy, đến vô hiệu hóa apache2
bạn chỉ cần chạy
sudo update-rc.d apache2 disablesudo service apache2 stop
Vô hiệu hóa dịch vụ (việc làm) trong nổi
Mới nổi việc nghĩa không có một update-rc.d
lệnh. Đến vô hiệu hóa các công việc, các bạn cần phải sửa tin trực tiếp đến vô hiệu hóa nó. Có hai cách để làm điều này.
Nếu bạn muốn để vẫn có thể bắt đầu nó bằng tay, sau đó bạn cần để thảo luận ra start on
điều kiện. Nói bạn muốn cài samba nhưng không có nó bắt đầu tự động. Đây là việc làm tập tin (trong khéo léo):
description "SMB/CIFS File Server"author "Steve Langasek <steve.langasek@ubuntu.com>"start on local-filesystemsstop on runlevel [!2345]respawnpre-start script RUN_MODE="daemons" [ -r /etc/default/samba ] && . /etc/default/samba [ "$RUN_MODE" = inetd ] && { stop; exit 0; } install -o root -g root -m 755 -d /var/run/sambaend scriptexec smbd -F
Đến vô hiệu hóa samba bạn chỉ có thể đặt một #
ở phía trước của "start on local-filesystems
". Lưu ý rằng trong khi đó, nó sẽ không bắt đầu trở lại khởi động, bạn vẫn còn cần phải dừng lại nó lần này với
sudo service smbd stop
Nếu, tuy nhiên bạn không bao giờ muốn samba để bắt đầu, tôi muốn đề nghị thực sự loại bỏ các gói. Tuy nhiên, nếu bạn muốn nó được cài đặt, nhưng không startable, bạn cũng có thể làm:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Vô hiệu hóa một dịch vụ sử dụng bắt đầu/dừng lại đoạn (như của 11.04)
Bắt đầu với phiên bản mới nổi này sẽ được trong 11.04, đó là một từ khóa mới là vô hiệu hóa start on
và stop on
đoạn: manual
. Vì vậy, một cách vô hiệu hóa các dịch vụ như của 11.04 là để làm:
echo 'manual' | sudo tee /etc/init/mysql.override# command from root shellecho manual >> /etc/init/mysql.override
Bạn có thể tạo ra một override
tập tin vô hiệu hóa một dịch vụ mà không cần chỉnh sửa định nghĩa công việc ở tất cả, bằng cách chỉ đưa manual
từ khóa trong đó.