Как выполнить команду после sudo su

Мне нужно выполнить команду monit restart haproxy после sudo su.

Это мой скрипт.ш

sudo su
monit restart haproxy.

Здесь, если я выполню файл script.sh, он зависнет, и он не выполняет команду haproxy monit restart.

Есть идеи?


person ishwar    schedule 03.11.2016    source источник


Ответы (2)


Команда sudo ожидает, что вы введете пароль, поэтому она будет зависать, вы можете использовать канал, чтобы пароль передавался команде следующим образом:

echo <password> | sudo su
monit restart haproxy.
person CodingNagger    schedule 03.11.2016
comment
На самом деле команда sudo su не ожидает пароль. Как будто я буду делать вручную sudo su. затем он перейдет к корневому терминалу без ввода пароля. Таким образом, в основном проблема заключается в том, что после того, как он перейдет к пользователю root, он не выполнит команду monit. - person ishwar; 03.11.2016
comment
Имеет ли пользователь root права на выполнение команды monit restart haproxy.? - person CodingNagger; 03.11.2016
comment
да .. я могу выполнить команду monit restart haproxy после sudo su. - person ishwar; 03.11.2016

Вот некоторая информация о sudo su. Вам нужно ввести пароль для команды sudo или su, вот цитата из ссылки, которую я разместил, которая может быть источником вашей проблемы:

sudo — sudo предназначен для запуска одной команды с привилегиями root. Но в отличие от su он запрашивает пароль текущего пользователя. Этот пользователь должен быть в файле sudoers (или группе, которая находится в файле sudoers). По умолчанию Ubuntu «запоминает» ваш пароль на 15 минут, поэтому вам не нужно каждый раз вводить пароль.

person nopasara    schedule 04.11.2016