Làm thế nào để chạy một ứng dụng khi khởi động như một người dùng nhất định?


17

Có cách nào để khởi chạy ứng dụng trong khi khởi động dưới một tài khoản người dùng nhất định không?

Ví dụ: tôi muốn a_small_appchạy dưới tài khoản người dùng bob(trong nhóm bobsgroup). Tôi có thêm cái gì vào /etc/init.dkhông?

Lưu ý: Tôi không muốn ứng dụng khởi động sau khi người dùng đăng nhập mà là khi máy tính khởi động.


Bạn có muốn ứng dụng bắt đầu trước khi đăng nhập trong cửa sổ đăng nhập không?
Martin Owens -doctormo-

@Martin: Chà, điều đó không thực sự quan trọng ... Tôi đang sử dụng Apache làm ví dụ ở đây. Khi nao thi băt đâu?
Nathan Osman

Câu trả lời:


13

Một phương pháp bất khả tri hệ thống khởi động. Bạn có thể sử dụng tệp này trong /etc/rc.local, /etc/init.d/...tập lệnh, tệp cấu hình Upstart và có thể cả cấu hình systemd.

sudo -u oli /full/path/to/application

Lệnh này sẽ chạy như người dùng root và sudosẽ thả xuống người dùng "oli". Rõ ràng thay đổi người dùng và lệnh cho mục đích của bạn.

Tôi nên nói thêm rằng có ít nhất một tá cách làm việc này ... Nhưng theo kinh nghiệm của tôi thì tất cả đều giống nhau về hiệu quả. Đây là một ví dụ mới nhất sử dụng khổ setuidthơ của nó :

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

setuid oli
respawn

exec /full/path/to/application

Tôi đề nghị rằng ví dụ
von

Tôi nhận đượcsudo: unknown group: 1004
ThorSummoner

Ngoài ra, poke : Thời gian để cập nhật dòng về khởi đầu.
muru

@muru tôi sẽ làm. Nhưng nhóm không bắt buộc. sudo sẽ sử dụng nhóm mặc định của người dùng được chỉ định.
Oli

Tốt hơn nên chỉnh sửa nó ra. Lệnh đó đã sai trong ba năm kể từ khi ai đó cải thiện nó! : D
muru

1

Có vẻ như câu trả lời đầu tiên không còn hoạt động trong Ubuntu 14.10 nữa.

Đây là cách tôi làm ở đó (đặt nó vào /etc/rc.local)

su <username> - -c "<command>"

Nếu bạn cần một vỏ đăng nhập, tương đương là sudo -i -u ....
muru
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.