Se você quiser apenas uma instância do seu aplicativo em execução, poderá usar um arquivo de bloqueio. Abra com os sinalizadores O_CREAT | O_EXCL e ele falhará se o arquivo já existir.
Se você quiser sincronizar o acesso a um arquivo, use o flock . Também é possível bloquear partes de arquivos com fcntl . O flock é apenas para bloqueio consultivo, o que significa que um programa pode ignorar os bloqueios e acessá-lo de qualquer maneira. O bloqueio obrigatório é possível com fcntl, mas requer uma opção de montagem especial e permissões especiais de arquivo.
semget e semop também pode ser usado para sincronização entre processos.