Tôi đã đọc và hiểu về cách bạn tạo một quy trình daemon, nhưng từ mọi thứ tôi đọc, tôi chưa bao giờ thực sự hiểu tại sao nó cần phải được thực hiện.
Tôi đã đọc rằng chúng ta thực hiện fork - setsid - fork để tránh quá trình giành quyền kiểm soát thiết bị đầu cuối, nhưng điều này có nghĩa là gì? Nếu tôi khởi động một chương trình trong nền bằng cách sử dụng & (ví dụ './script &'), điều gì làm cho quá trình này 'thực thi khác với nếu tôi chạy bình thường một chương trình tự biến thành daemon?
Điều này có nghĩa đơn giản là nếu tôi đăng xuất thì quá trình nền sẽ dừng lại và trình nền sẽ tiếp tục chạy? Tôi thực sự gặp khó khăn trong việc hiểu 'quyền kiểm soát thiết bị đầu cuối'.
Lý do điều này làm phiền tôi là vì tôi đang làm việc với một RPi nhúng trên robot và do đó tôi cần phải làm cho các chương trình bắt đầu khởi động. Hiện tại tôi chỉ bắt đầu chúng từ RC.local bằng một lệnh như thế này su user -c 'python /home/user/launcher.py &' &
. Tôi chưa bao giờ có bất kỳ vấn đề nào với chương trình bắt đầu khi khởi động (tôi thậm chí có thể thấy quá trình sử dụng ps -e
khi SSH vào RPi), nhưng tôi muốn biết liệu có bất kỳ rủi ro nào không / nếu đó là thông lệ xấu.