È necessario creare un file di blocco che non possa essere eliminato da altri script o processi. Ho provato questo:Come bloccare un file con i processi esterni
$f = fopen($pidFile, 'w');
fwrite($f, getmypid());
flock($f, LOCK_EX);
ma qualsiasi altro processo iniziato da parte dell'utente corrente può eliminare il file $f
anche se l'handle di file è ancora aperto dallo script in esecuzione. Come risolvere questo problema e impedire ad altri (ad esempio i processi non PHP non PHP) di eliminare il file? E il blocco da rilasciare automaticamente quando il processo termina? Tutte le domande simili si concludono con un gruppo RTM (), ma nessuno di questi risponde come bloccare un file con i processi esterni.
OS è Linux 2.6.32-431.el6.x86_64
"flock" è "advisory", non rigido. Usa [controllo aggiuntivo] (http://stackoverflow.com/questions/20771824/php-test-if-file-is-locked) prima di fare qualsiasi cosa con il file negli script. Questo funzionerà se riguarda i tuoi script PHP. Se si tratta di processi esterni, allora 'flock' non può salvare il caso. –
Come ho accennato nella mia domanda, ho bisogno di bloccare il file per prevenire l'eliminazione da processi esterni (ad esempio non PHP) –