Perché molti programmi non si avviano se il file pid esiste ma non viene trovato alcun processo?

3

Vedo molti programmi che scrivono un file pid e controllano all'avvio la sua esistenza. E questo è buono. Ma molte applicazioni non vengono avviate anche se controllano che il file pid esista, sì, ma nessun processo con quel pid è in esecuzione.

Perché questo comportamento? Non è più semplice rimuovere il file pid e avvisare l'utente al massimo?

    
posta Marco Sulla 06.05.2016 - 18:12
fonte

1 risposta

1

La procedura corretta consiste nel verificare l'esistenza del file pid e, se esiste, verificare che il pid all'interno non faccia riferimento a un processo corrente. Se non esiste un processo con il pid, il file pid dovrebbe essere ricreato con il pid del processo corrente. Se il processo che ha creato il file pid non è stato chiuso in modo pulito (ovvero è diventato un processo "zombie") o il pid è stato riutilizzato (improbabile), il nuovo processo verrà chiuso. Sei sicuro che il processo stia uscendo perché il file pid esiste o potrebbe essere qualche altra ragione (il processo di errore potrebbe aver lasciato l'ambiente in uno stato non valido)?

    
risposta data 06.05.2016 - 18:33
fonte

Leggi altre domande sui tag