Làm cách nào để có được đầu ra từ các công việc mới bắt đầu khi đăng nhập qua SSH?


10

Để theo dõi những gì định nghĩa công việc của tôi đang làm, tôi muốn xem đầu ra văn bản từ các công việc. Điều đó dường như không thể xảy ra khi tôi đăng nhập qua SSH.

Tôi đang gặp vấn đề này với Natty 11.04, nhưng tôi tin rằng nó là một vấn đề phổ biến hơn.

Một tập tin công việc đơn giản tôi sử dụng (tên tệp /etc/init/test.conf):

description "test"
start on test
console owner
kill timeout 5
task
script
  /bin/echo Gotcha...
end script

Mục tiêu của tôi là xem văn bản "Gotcha ..." khi làm initctl emit testhoặc initctl start test. Nhưng điều đó không làm việc.

Những gì tôi đã cố gắng cho đến nay:

  • "đầu ra giao diện điều khiển" thay vì "chủ sở hữu bàn điều khiển"
  • "exec / bin / echo Gotcha ..." thay vì script ... end script

Câu trả lời:


8

Vì init (pid 1) đang chạy dịch vụ (không có stdout / stderr) và không phải trình bao của bạn (như với các /etc/init.dtập lệnh kiểu cũ ), nên hiện tại không có cách nào để xem đầu ra được tạo. (Tính năng này thường xuyên được yêu cầu và nằm trong danh sách những việc cần làm cho Upstart.)

Để giải quyết vấn đề này, tôi khuyên bạn nên buộc chuyển hướng đầu ra khi bắt đầu công việc:

script
    exec >/var/log/test.debug 2>&1
    echo Gotcha...
end script

16

Kể từ ngày 12.04 (có thể là trước đó), theo mặc định, upstart sẽ đăng nhập vào một tệp trong / var / log / upstart / với bất kỳ đầu ra nào từ công việc

Tài liệu hiện tại của Upstart (trên Cookbook)

Sau đó, bạn có thể theo đuôi tệp đó để xem tất cả văn bản mới đang được ghi vào tệp

Ví dụ:

tail -f /var/log/upstart/test.log & # tail the output
initctl emit test
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.