Khởi đầu trên Debian?


20

Tôi đã tạo một tập lệnh mới nhất trong Ubuntu, nghĩ rằng nó sẽ giống với Debian. Nhưng Debian không có /etc/initthư mục mà Ubuntu có. Tôi đã đi đến trang tải xuống mới bắt đầu và thấy rằng họ có các gói, đã làm một apt-get install upstart, nhưng nó yêu cầu loại bỏ sysvinit, mà tôi biết sẽ / có thể làm hỏng hệ thống của tôi. Vậy làm cách nào để tập lệnh Ubuntu của tôi hoạt động trên Debian?

Câu trả lời:


12

Nó không trực tiếp về Debian vs Ubuntu, mà là về SysVinit vs Upstart . Debian mặc định là SysVinit; bạn có thể cài đặt Upstart, nhưng bạn cần biết những gì bạn đang làm và bạn nên làm quen với nó trước khi bạn nghĩ đến việc cài đặt nó trên một máy chủ sản xuất. Mặc dù về mặt lý thuyết là có thể cài đặt cả hai, chỉ với một trong số chúng chạy như quy trình số 1, Debian không hỗ trợ điều này.

Upstart trẻ hơn SysVinit và có nhiều khả năng hơn, điều này giải thích tại sao bạn không thể lấy một mô tả dịch vụ Upstart và đưa nó cho SysVinit. Bạn sẽ phải viết một kịch bản cho/etc/init.d . Về cơ bản mà nhu cầu kịch bản để nhìn vào đối số của nó đầu tiên ( $1) và start, stophoặc restartcác dịch vụ theo hướng dẫn.

Nếu bạn đang sử dụng các sự kiện Khởi động để xác định khi nào bắt đầu tập lệnh, bạn sẽ phải sử dụng một số phương pháp khác. Upstart tập hợp các sự kiện từ nhiều nguồn khác nhau; bạn có thể nhận được kích hoạt từ bất cứ nơi nào Upstart có được nó, Upstart về mặt này chỉ là một cách thuận tiện để không phải tìm kiếm các kích hoạt ở nhiều nơi và giao thức khác nhau.


Vậy làm thế nào mà Ubuntu sử dụng cả mới bắt đầu và SysVinit (hoặc xuất hiện)?
ColinM

@ColinM Ubuntu không sử dụng SysVinit.
Gilles 'SO- ngừng trở nên xấu xa'

5

Lý do nó sẽ loại bỏ sysvinitlà vì hai điều này là xung đột. Ngoài ra, lưu ý sysvinitđược coi là thiết yếu (đọc: không được xóa, trừ khi bạn biết những gì bạn đang làm ).

Một phần của đầu ra từ 'aptitude show upstart`:

Conflicts: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job

Nếu bạn có đủ khả năng để vòi hệ thống của bạn, hãy tiếp tục và cài đặt nó.


Không, nó là một máy chủ sản xuất. Có cách nào tôi có thể tạo một dịch vụ mà tôi có thể bắt đầu và dừng từ thiết bị đầu cuối không?
theTuxRacer

Sau đó đặt tập lệnh của bạn vào /etc/init.dvà làm cho nó hiểu tối thiểu các start|stop|restartlệnh. Bạn không cần upstartphải chạy tập lệnh, chỉ dòng lệnh thông thường của bạn.
alex

@kau Làm thế nào về việc bạn sao chép máy chủ sản xuất của bạn vào một số máy thử nghiệm và cài đặt mới bắt đầu, và thử nghiệm?
tshepang

@alex @Tshepang Bạn có thể xem và tư vấn được không? paste.ubfox.com/555683 Bình không được thực thi.
theTuxRacer

Bạn không cần execở đó - hãy đọc một số trang và / hoặc sách về kịch bản shell.
alex
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.