CentOS 6 trở lên


18

CentOS 6 mới đi kèm với Upstart, thay thế init. Tôi đang cố gắng chuyển đổi tập tin / etc / inittab sang định dạng mới bắt đầu. Máy chủ cụ thể này chỉ có 15 mục nhập inittab, tuy nhiên, các máy chủ khác có> 30. Chúng tôi chủ yếu muốn phần 'hồi sinh' của inittab và mới bắt đầu. Tuy nhiên, tôi đã đọc tất cả các tài liệu mới bắt đầu mà tôi có thể tìm thấy, (khá nhiều TẤT CẢ dựa trên Ubuntu, và rõ ràng là trên một phiên bản cũ hơn mới bắt đầu) và không đi đến đâu. Tôi có thể tạo một tệp cấu hình (hãy gọi nó là /etc/init/test.conf). Các tập tin có chứa này (lưu ý, ẩn danh)

start on runlevel [345]
stop on starting shutdown

respawn
#Comment about what it does
exec su -c "/usr/bin/ssh -2CNL 11111:127.0.0.1:11111 10.10.1.1" username

Nếu tôi phát hành một initctl reload-configurationcông việc được công nhận. Tôi có thể bắt đầu nó bằng cách gọi initctl start testvà công việc sẽ bắt đầu.

Tuy nhiên, điều này sẽ không hoạt động khi khởi động lại, chỉ bằng tay. Tôi đã thử sửa đổi lệnh start thành như sau, tất cả đều không có may mắn

start on started

start on (local-filesystems and net-device-up IFACE!=lo)

start on net-device-up IFACE=eth0 

và khoảng một chục cách khác tôi có thể thấy được đề cập trong các ví dụ khác nhau. dường như không có gì để bắt đầu kịch bản (test.conf, giống như tất cả các tệp khác trong thư mục này, được sở hữu bởi root và 644)

Tôi có thiếu một cái gì đó rõ ràng rõ ràng?

Câu trả lời:


32

Tôi tìm thấy một kịch bản khởi đầu rất, rất, rất hữu ích cho những người đang gặp vấn đề trong tương lai. Đặt cái này vào / etc / init /

# /etc/init/debug.conf
start on ( starting JOB!=debug \
or started JOB!=debug \
or stopping JOB!=debug \
or stopped JOB!=debug )
script
exec 1>>/tmp/log.file
echo -n "$UPSTART_JOB/$UPSTART_INSTANCE ($0):$$:`date`:"
echo "Job $JOB/$INSTANCE $UPSTART_EVENTS. Environment was:"
env
echo
end script

Kịch bản này về cơ bản ghi lại tất cả các công việc bắt đầu hoặc dừng lại. Tôi đã thấy rằng CentOS 6 không 'phát ra' bất cứ điều gì về đường băng. (cũng không phải một số sự kiện phổ biến khác mà tôi đã thử. '). Xem tệp nhật ký mà công việc gỡ lỗi tạo trong /tmp/log.file rất hữu ích. Bằng cách thay đổi bắt đầu tập lệnh của tôi từ:

start on runlevel [345]

đến

start on started sshd

tất cả các công việc của tôi xuất hiện để bắt đầu chính xác. Đây là một nỗi đau ở phía sau, vì mọi ví dụ tôi tìm thấy đều sử dụng cú pháp cũ ..


Nếu tôi có thể bỏ phiếu nhiều hơn một lần, tôi sẽ có.
Peter Mounce

15

Xin lỗi vì đã hoại tử, nhưng tôi đã giải quyết vấn đề này bằng cách sử dụng như sau:

start on stopped rc RUNLEVEL=[345]

"Dừng lại" không phải là một lỗi đánh máy - RC dường như dừng lại khi vào runlevel.


2
Cảm ơn vì tiền hỗ trợ! Necroposting là tuyệt vời, khi nó hữu ích!
Brian

5

Đây là những gì tôi đã làm (CentOS 6, Upstart 0.6.5) để gỡ lỗi các vấn đề về hô hấp. Trong một thiết bị đầu cuối khác, làm

sudo initctl log-priority debug 
sudo tail -F /var/log/messages
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.