Ubuntu - запускать команду при запуске с помощью «sudo»


91

Я хотел бы запустить sudoкоманду при запуске Ubuntu (до того, как кто-либо войдет в систему):

sudo searchd

Как мне это сделать?

Ответы:


195

Вы можете добавить команду в /etc/rc.localсценарий, который выполняется в конце запуска.

Напишите команду раньше exit 0. Все, что написано после exit 0, никогда не будет выполнено.


38
Раньше точно. Все, что написано после exit 0, никогда не будет выполнено.
— Дидье Троссет

Привет, у меня также есть и команда rvmsudo, которую нужно выполнить в той же ситуации. команда обычно запрашивает пароль. Возникнут ли проблемы, если я помещу команду непосредственно в /etc/rc.local?
— ravi1991 09

@fmonegaglia Это зависит от обстоятельств. Если вы хотите, чтобы команда была запущена, а сценарий ожидает ее завершения, прежде чем перейти к следующей команде в сценарии, тогда нет &. Если вы хотите, чтобы следующая команда запускалась, даже если текущая еще не завершена, добавьте файл &.
— Дидье Троссет

@NoOne Проверить права доступа к этому файлу для текущего пользователя. Запуск команды редактора с помощью sudo может помочь.
— Дидье Троссет

1
Конечно, он существует, и да, я установил исполняемый бит. При попытке включить службу я получаю только The unit files have no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units) […].советы по этому поводу ?
— oarfish

9

Отредактируйте конфигурацию tty /etc/init/tty*.confс помощью сценария оболочки в качестве параметра:

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

Предполагается, что мы редактируем tty1, а сценарий, который считывает ввод, - этоInputScript.sh.

Предупреждение: этот скрипт запускается от имени пользователя root, поэтому, когда вы вводите в него данные, у вас есть привилегии root. Также добавьте путь к расположению скрипта.

Важно: скрипт по завершении должен вызывать / sbin / login, иначе вы не сможете войти в систему в терминале.


1
этот ответ был очень полезен для меня при создании нашего продукта, большое спасибо
— Хосе Ф. Романиелло

0

Хорошие ответы. Вы также можете установить задания (т.е. команды) с помощью « Crontab » для большей гибкости (который предоставляет различные варианты для запуска сценариев, регистрации выходных данных и т. Д.), Хотя для этого требуется больше времени, чтобы понять и правильно настроить:

Используя '@reboot', вы можете запустить команду один раз при запуске.

Завершение : беги$ sudo crontab -e -u root

И добавьте строку в конце файла с вашей командой следующим образом:

@reboot sudo searchd
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.