Xem xét yêu cầu của bạn về việc điều hành một công việc khi bạn đăng nhập vào Unity và không cho các thông tin đăng nhập khác, một công việc phiên Upstart có vẻ hoàn hảo.
Bạn có thể đã nhận thấy nó: các quy trình mà bạn chạy sau khi đăng nhập GUI nằm trong init
quy trình thứ hai . Đây init
là một init upstart thích hợp và bạn có thể bắt đầu và dừng các công việc phiên dựa trên các sự kiện do nó phát ra. Không có quyền root cần thiết ở tất cả. Tốt hơn nữa (hoặc tệ hơn tùy thuộc vào quan điểm), điều này vẫn chưa được hỗ trợ hoàn toàn cho các hệ thống không đầu. Đăng nhập SSH đã không bắt đầu init người dùng từ một thử nghiệm nhanh mà tôi vừa thực hiện.
Để tạo một công việc phiên, tạo một .conf
tệp mới trong ~/.config/upstart
. Đó là thư mục chính mặc định cho các công việc phiên khởi động ( $XDG_CONFIG_HOME/upstart
), tạo thư mục đó nếu không tồn tại. Đây là một công việc ví dụ:
tee ~/.config/upstart/myjob.conf <<EOF
description "My job"
start on desktop-start
stop on desktop-end
script
firefox 'http://upstart.ubuntu.com/cookbook/#session-job'
end script
EOF
Bạn có thể tự điều khiển nó:
start myjob
# or
initctl start myjob
Các service
lệnh được sử dụng để kiểm soát việc làm hệ thống (những người trong /etc/init.d
hoặc /etc/init
). Để kiểm soát các công việc phiên, người ta cần sử dụng initctl
lệnh, được sử dụng để tương tác với Upstart.
Xem man upstart-events
để biết thêm sự kiện bạn có thể sử dụng.