Я все еще пытаюсь узнать немного больше о скриптах bash и запуске / перезагрузке, я читал о crontab @reboot, а также просто смотрю на другие варианты, но мне просто интересно, может ли кто-нибудь указать мне правильное Прежде чем я выясню, существуют ли ограничения на метод, который я пытаюсь использовать ...
Вот что я пытаюсь выполнить:
У меня есть 2 пользователя, которым нужно запускать процессы на перезагрузка / запуск:
Пользователь1: 5 Все процессы выполняются со стандартными привилегиями (здесь нет проблем)
Пользователь2: 2 запускаемые команды (sudo) и 5 стандартных процессов, которые нужно запускать, но только когда mysql и вышеуказанные процессы активны.
У меня есть только ssh-доступ к серверу, поэтому я выбрал информацию, которую я читал, чтобы попробовать метод bash / cron.
Я проверил команду sudo, работающую со сценарием bash, и, кажется, это хорошо, все учетные записи используют ключи, а не пароли, поэтому мне не предлагается подтвердить пароль, я еще не проверял это при перезагрузке, но буду сделать очень скоро.
Основная проблема заключается в проверке, загружены ли 5 процессов, запускаемых пользователем 1, перед тем как позволить пользователю 2 начать свою работу, с двумя отдельными сценариями bash, возможно ли создать ожидание или цикл для проверки имен запущенных процессов, прежде чем продолжить?
Спасибо
Я не абсолютно уверен, является ли это тем, что Вы ищете, но я полагаю, что .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 это также помогает.
Да Вы можете. Вот является пример этим сценарием сны в течение 30 секунд, можно также использовать 1 м для сна в течение 1 Минуты. Вы могли также попытаться добавить/root/myscript к/etc/rc.local однако, я не знаю, нужно ли та работа со временем выполнения Вам.
#!/bin/bash
sleep 30
/root/myscript