Penso che il modo più sicuro per farlo sia che il processo di lunga durata ascolti un socket. Una volta che il processo è breve, si connette a quel socket, invia tutte le informazioni rilevanti e si disconnette.
La comunicazione socket a localhost dovrebbe non fallire, quindi questo dovrebbe non introdurre alcun rischio significativo. I socket sono migliori dell'uso dei file da sincronizzare perché non c'è alcun rischio che un altro processo o utente alterino o cancellino il file, e le autorizzazioni dei file non possono impedire il funzionamento di un socket.
Come per altri metodi, i socket consentono di inviare informazioni arbitrarie. Potrebbe essere semplice come "ciao, vai a fare le tue cose" o potrebbe essere una complessa struttura di dati serializzati. Qualunque cosa ti serva.
Infine, in genere i socket utilizzano gli stream per serializzare e deserializzare i dati su entrambe le estremità. Entrambi i socket e gli stream sono molto metodi di comunicazione standard e consolidati supportati da praticamente tutti i sistemi operativi e gli ambienti di programmazione. Anche se cambi il tuo stack tecnologico in futuro o espandi per lavorare con un programma scritto in una lingua diversa oltre a ciò che hai oggi, quella parte dovrebbe comunque funzionare.
Ti consiglio di consultare la lista delle porte IP registrate e selezionarne una che non è in uso. Secondo la parte inferiore della pagina, le porte comprese tra 49.152 e 65.535 non possono essere registrate e dovrebbero essere disponibili per qualsiasi uso (incluso questo) senza interferire con le applicazioni standard (ad esempio un server FTP / SFTP).