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

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

Это мой script.sh

sudo su
monit restart haproxy.

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

Любая идея.

Спасибо в advanced.

2 ответа

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

    echo <password> | sudo su
    monit restart haproxy.
    
  2. Вот некоторая информация о sudo su. Вам нужно ввести пароль для команды sudo или su, вот некоторые цитаты из ссылки, которую я опубликовал, которые могут быть источником вашей проблемы:

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