Недавно я создал страницу контроля версий из своего приложения, чтобы управлять процессом развертывания.
(Да, я знаю, github + хуки лучше, чем переписывание с нуля. Но мы находимся в Иране, и наше любимое правительство заблокировало все ssh-соединения за пределами страны. :((( )
На странице есть действие слияния + перезагрузки. Слияние работает как и другие части, но часть перезагрузки не работает без какого-либо сообщения. Я добавил строку sudo для команды kill и пользователь рабочего процесса имеет достаточно прав. Я даже выполнил код из django shell и он перезагрузил процесс.
Есть ли какие-либо ограничения на получение сигналов, например, рабочие не могут перезагружать своего мастера?
Вот связанные коды:
def command(x):
return str(Popen(x.split(' '), stdout=PIPE).communicate()[0])
pid = open(PATH + "/logs/gunicorn.pid").readline().strip()
cmd = "sudo kill -HUP %s" % pid
content += command(cmd)