Ubuntu - Chạy lệnh khi khởi động với “sudo”


91

Tôi muốn chạy một sudolệnh khi Ubuntu khởi động (trước khi bất kỳ ai đăng nhập):

sudo searchd

Tôi sẽ làm điều này như thế nào?

Câu trả lời:


195

Bạn có thể thêm lệnh trong /etc/rc.localtập lệnh được thực thi khi kết thúc khởi động.

Viết lệnh trước exit 0. Bất cứ điều gì được viết sau đó exit 0sẽ không bao giờ được thực thi.


38
Trước đây, chắc chắn. Bất cứ điều gì được viết sau đó exit 0sẽ không bao giờ được thực thi.
Didier Trosset

Xin chào Tôi cũng có và lệnh rvmsudo được thực hiện trong tình huống tương tự. lệnh thông thường sẽ yêu cầu mật khẩu. Có vấn đề gì không nếu tôi đặt lệnh trực tiếp trong /etc/rc.local?
ravi1991

@fmonegaglia Còn tùy. Nếu bạn muốn lệnh được bắt đầu và tập lệnh đợi nó kết thúc trước khi tiếp tục lệnh tiếp theo trên tập lệnh, thì không &. Nếu bạn muốn lệnh sau được bắt đầu ngay cả khi lệnh hiện tại chưa kết thúc, hãy thêm a &.
Didier Trosset

@NoOne Kiểm tra quyền truy cập trên tệp này cho người dùng hiện tại. Bắt đầu lệnh soạn thảo với sudo có thể thực hiện thủ thuật.
Didier Trosset

1
Tất nhiên nó tồn tại và có, tôi đã đặt bit thực thi. Khi cố gắng kích hoạt dịch vụ, tôi chỉ nhận được The unit files have no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units) […].bất kỳ lời khuyên nào về điều này?
oarfish

9

Chỉnh sửa cấu hình tty /etc/init/tty*.confvới shellcript dưới dạng tham số:

(...)
exec /sbin/getty -n -l  theInputScript.sh -8 38400 tty1
(...)

Điều này giả sử rằng chúng tôi đang chỉnh sửa tty1 và tập lệnh đọc đầu vào là theInputScript.sh.

Một lời cảnh báo rằng script này được chạy dưới dạng root, vì vậy khi bạn nhập nội dung vào nó, bạn sẽ có root priviliges. Đồng thời nối một đường dẫn đến vị trí của tập lệnh.

Quan trọng: tập lệnh khi nó hoàn thành, phải gọi / sbin / đăng nhập nếu không bạn sẽ không thể đăng nhập vào thiết bị đầu cuối.


1
câu trả lời này khá hữu ích cho tôi khi xây dựng thiết bị sản phẩm của chúng tôi, cảm ơn rất nhiều
José F. Romaniello

0

Câu trả lời hay. Bạn cũng có thể đặt Công việc (tức là các lệnh) bằng " Crontab " để linh hoạt hơn (cung cấp các tùy chọn khác nhau để chạy các tập lệnh, đăng nhập các đầu ra, v.v.), mặc dù nó đòi hỏi nhiều thời gian hơn để hiểu và đặt đúng:

Sử dụng '@reboot', bạn có thể Chạy lệnh một lần khi khởi động.

Wrapping up : run$ sudo crontab -e -u root

Và thêm một dòng ở cuối tệp bằng lệnh của bạn như sau:

@reboot sudo searchd
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.