Tôi đang sử dụng phiên bản mới nhất cuối cùng cho Ubuntu 10,4 LTS. upstart được khởi chạy với cờ kernel --debug.
Tôi đang tạo một cấu hình công việc tùy chỉnh cho nzbget daemon. Về cơ bản, công việc này có một kịch bản bắt đầu trước gắn kết một hệ thống tập tin, một kịch bản sau khi bắt đầu ngắt kết nối hệ thống tập tin và một exec nzbget -D
dòng.
Vấn đề là daemon nzbget cần phải chạy như một người dùng không có quyền riêng tư. Tính năng này đã được bao gồm trong nzbget. Thật vậy, khi tôi chạy từ bàn điều khiển sudo nzbget -D
, quá trình sẽ chạy như một người dùng không có đặc quyền. Nhưng khi tôi bắt đầu công việc mới bắt đầu với exec nzbget -D
dòng, quá trình nzbget -D chạy như root. Như đã nói trong cuốn sách dạy nấu ăn mới nổi, tôi đã thử sử dụng người dùng su -c "nzbget -D" và cả start-stop-daemon cả mà không mong đợi như lời khuyên. Nhưng đối với cả hai lệnh, khi mới bắt đầu theo dõi sai PID tôi đoán, nó thấy quy trình chính bị giết (do bắt đầu ghi nhật ký) khi kết thúc quá trình bắt đầu và do đó, nó khởi chạy kịch bản hậu xử lý mà tôi không muốn.
=> Làm thế nào tôi có thể làm điều đó đúng? Làm thế nào mà exec nzbget -D
lệnh khởi động làm cho quá trình chạy như root trong khi sudo nzbget -D
lệnh làm cho nó chạy như người dùng không có quyền riêng tư?