No linux, sempre foi um problema obter acesso exclusivo às portas seriais, já que a única maneira de restringir interferências indesejadas é o direito de acesso do usuário / grupo.
Com o tempo, a convenção foi estabelecida como dizer aos outros processos para não abrir o dispositivo de porta serial quando algum processo está disposto a 'possuir' ele: o processo que vai abrir a porta serial (paralela) primeiro arquivo de bloqueio no diretório /tmp
(outros padrões podem usar o diretório /var/lock
), por exemplo /tmp/LCK..ttyS0 no caso do dispositivo ttyS0 e grava seu PID
nesse arquivo. Em seguida, ele o lê de volta e, se o PID
corresponder, o processo assumirá a propriedade da porta. Depois que a porta não é mais necessária, o arquivo de bloqueio é excluído pelo processo.
Assim, você pode abri-lo a partir de diferentes processos, desde que esses processos uids ou gids tenham acesso rw no dispositivo