Làm thế nào để chạy RC.local như người dùng bình thường?


8

Tôi có một số lời khen rằng tôi muốn được gọi ngay sau khi đăng nhập, bao gồm cả 'startx', và tôi nghĩ rc.localcó vẻ là một nơi tốt cho họ, nhưng vấn đề là nó rc.localđược chạy như root và tôi không muốn điều đó, rõ ràng tôi có thể làm được đại loại như thế này:

su username -c somecommend-here

Nhưng tôi đang tìm cách để chạy toàn bộ 'RC.local' như người dùng bình thường hoặc có lẽ có nơi nào tốt hơn để đặt mã của tôi?

Tái bút Tôi đang sử dụng Ubuntu-mini-phối lại 1104i386

Cảm ơn


AFAIK rc.local được thực thi song song để đăng nhập vào cuối chuỗi khởi động. Ý tôi là, nó sẽ được thực thi ngay cả khi bạn không đăng nhập, nhưng bạn có thể đăng nhập vào ant nó có thể đang chờ thực thi.
Javier Rivera

@JavierRivera Vậy giải pháp sẽ là gì?
omeid

Câu trả lời:


6

Cách dễ nhất để khởi chạy lệnh khi người dùng đăng nhập là tạo một .desktoptệp cho lệnh và dán nó vào ~/.config/autostartthư mục. Các tập tin máy tính để bàn trông như thế nào? Dưới đây là một ví dụ lấy trang chủ Hỏi Ubuntu wgetmỗi khi người dùng đăng nhập:

[Desktop Entry] 
Name=Launch wget
Comment=Fetches the Ask Ubuntu home page.
Exec=wget http://askubuntu.com/

Có vẻ như không phải là một ý tưởng tốt để khởi chạy startx(như OP yêu cầu) sau khi đăng nhập đồ họa.
enzotib

@enzotib: Không có đề cập đến đăng nhập đồ họa.
Nathan Osman

Có lẽ tôi đã hiểu nhầm câu hỏi, tôi tin rằng người dùng sẽ bắt đầu startxtừ đó rc.local. Xin lỗi
enzotib

1

Tôi không biết sự khác biệt giữa /etc/rc.local và crontab, nhưng tôi thường tạo một tài khoản dịch vụ và thêm công việc phù hợp. Ví dụ: sudo crontab -u p4padmin -e

@reboot ~/bin/p4p -d -r ~/var/p4p/cache/foo -p 2020 -t depot:2020 -L ~/var/p4p/log/foo.log

Bạn không phải đăng nhập để dịch vụ thực thi.


0

Cách linux là nối các lệnh của bạn ~/.bashrcthay vì /etc/rc.local.

Mỗi người dùng có một .bashrctrong thư mục nhà của nó. Scriptfile này được chạy tự động ngay sau khi người dùng đăng nhập. Nó được chạy với thông tin đăng nhập của người dùng nên sukhông cần sử dụng lệnh.

Dường như với tôi rằng đây chính xác là những gì bạn đang tìm kiếm.


Điều này không hoàn toàn chính xác, ví dụ như .bashrckhông được đọc khi người dùng đăng nhập bằng cách sử dụng bình thường lightdm.

Tôi đã kết luận quá nhanh rằng người dùng đang sử dụng thông tin đăng nhập dòng lệnh thay vì trình quản lý hiển thị vì lệnh startx "thủ công" mà anh ta đã đề cập .... xấu của tôi :-)
thom
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.