Ho recentemente creato una pagina di controllo della versione dalla mia applicazione per gestire il processo di distribuzione.Gunicorn :: ricarica dall'applicazione stessa
(Sì, lo so, GitHub + ganci sono meglio di riscrivere da zero ma siamo in Iran e il nostro amato governo ha bloccato tutte le connessioni ssh ad di fuori del paese:.. (()
Ci è un'azione di unione + ricarica nella pagina. l'unione funziona come le altre parti, ma la parte di ricaricamento fallisce senza alcun messaggio. Ho aggiunto la riga sudo per il comando kill e l'utente del processo worker ha abbastanza autorizzazioni. il codice forma django shell e ha ricaricato il processo
C'è qualche restrizione per ricevere segnali, come ad esempio i lavoratori che non sono in grado di ricaricare il loro master?
Ecco i relativi codici:
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)