Tôi đang sử dụng giám sát để quản lý chương trình php cần chạy trong nền. Chương trình đó ghi lại các sự kiện vào một tệp worker_log
. Nó đơn giản là đủ để cấu hình này trong supervisord.conf
Tôi đang sử dụng:Nhật ký thời gian của các chương trình được quản lý bởi người giám sát
stderr_logfile=/var/log/supervisord/worker_log;
Tuy nhiên, tôi muốn cho các sự kiện được ghi vào nhật ký để đánh dấu thời gian mình. Tôi không có quyền kiểm soát chương trình php, do đó, trang trí nhật ký của nó không phải là một lựa chọn. Tôi thấy rằng những gì tôi sẽ làm là nhận xét cấu hình đăng nhập ở trên và trang trí chương trình thông qua các đường ống lệnh trong cấu hình lệnh của người giám sát:
command=php /www/myapp/worker.php 2>&1 | sed "s/^/`date` /" > /var/log/supervisord/worker_log;
Khi chạy lệnh này theo cách thủ công, nó có vẻ hoạt động tốt. Tuy nhiên, giám sát dường như bằng cách nào đó ngăn chặn nó hoạt động đúng cách, và tôi không thể nói như thế nào. worker.php
hoạt động tốt, nhưng báo cáo là, trong cấu hình này, bị chặn. Và, do đó, tất nhiên là không thêm dấu thời gian.
Có ai biết đủ về điều này để cung cấp hướng dẫn về cách đạt được mục tiêu của việc đánh dấu thời gian đầu ra của nhân viên không?
Is có khả năng thông số lệnh không hỗ trợ đường ống? Hoặc có thể là lệnh khi chạy là phát hành các thiết bị đầu cuối, mà supervisord không hỗ trợ? –