Скрипты запуска / перезагрузки для разных пользователей

Я все еще пытаюсь узнать немного больше о скриптах bash и запуске / перезагрузке, я читал о crontab @reboot, а также просто смотрю на другие варианты, но мне просто интересно, может ли кто-нибудь указать мне правильное Прежде чем я выясню, существуют ли ограничения на метод, который я пытаюсь использовать ...

Вот что я пытаюсь выполнить:

У меня есть 2 пользователя, которым нужно запускать процессы на перезагрузка / запуск:

Пользователь1: 5 Все процессы выполняются со стандартными привилегиями (здесь нет проблем)

Пользователь2: 2 запускаемые команды (sudo) и 5 ​​стандартных процессов, которые нужно запускать, но только когда mysql и вышеуказанные процессы активны.

У меня есть только ssh-доступ к серверу, поэтому я выбрал информацию, которую я читал, чтобы попробовать метод bash / cron.

Я проверил команду sudo, работающую со сценарием bash, и, кажется, это хорошо, все учетные записи используют ключи, а не пароли, поэтому мне не предлагается подтвердить пароль, я еще не проверял это при перезагрузке, но буду сделать очень скоро.

Основная проблема заключается в проверке, загружены ли 5 ​​процессов, запускаемых пользователем 1, перед тем как позволить пользователю 2 начать свою работу, с двумя отдельными сценариями bash, возможно ли создать ожидание или цикл для проверки имен запущенных процессов, прежде чем продолжить?

Спасибо

0
задан 25 February 2014 в 19:02

2 ответа

Я не абсолютно уверен, является ли это тем, что Вы ищете, но я полагаю, что .profile выполняется на начальной загрузке для отдельного пользователя.

я надеюсь, что это помогает для половины Вашей проблемы, хотя, если Вы регистрируете пользователя одновременно, я не полагаю, что это будет работать последовательно.

Ubuntu .profile

А путем я использую, чтобы проверить, что процессы со сценариями Python. Я не знаю, колотят ли его возможное, чтобы сделать свободные регистрации, но я знаю в Python, можно попытаться использовать Popen для выполнения терминальной команды

ps aux | grep the-process

как таковой

p = subprocess.Popen(('ps', 'aux'), stdout=subprocess.PIPE)
g = subprocess.Popen(("grep", "the-process"), stdin=p.stdout, stdout=subprocess.PIPE)

, И это возвратит Вас список рабочих процессов с тем именем. Осуществите проверку, и затем у Вас может быть она цикл, пока это не становится верным.

Hope это также помогает.

0
ответ дан 25 February 2014 в 19:02

Да Вы можете. Вот является пример этим сценарием сны в течение 30 секунд, можно также использовать 1 м для сна в течение 1 Минуты. Вы могли также попытаться добавить/root/myscript к/etc/rc.local однако, я не знаю, нужно ли та работа со временем выполнения Вам.

 #!/bin/bash  
sleep 30  
/root/myscript
0
ответ дан 25 February 2014 в 19:02

Другие вопросы по тегам:

Похожие вопросы: