Quando tentei executar o gammu-smsd como um daemon, meu syslog (ao qual o daemon escreve) indicou que a porta / dev / ttyS0 estava atualmente aberta e em uso.
Então, para descobrir o que estava usando, eu inicialmente corri
fuser -m -u /dev/ttyS0
No entanto, esse switch -m deu uma resposta enganosa porque @derobert disse que lista tudo usando o ponto de montagem.
Foi o comando lsof que relatou corretamente o processo usando a porta especificada:
sudo lsof | grep ttyS0
screen 23520 root 6u CHR 4,64 0t0 1421 /dev/ttyS0
Agora tentei excluir a sessão da tela do gnu da maneira mais clara:
screen -ls
There is a screen on:
23520.pts-6.porkypig (09/30/2013 02:49:47 PM) (Detached)
1 Socket in /var/run/screen/S-root.
screen -S 21200.pts-1.porkypig -X quit
Enquanto a sessão foi encerrada, o processo ainda estava ativo:
$ cd /proc/23520
$ head -n 1 status
screen
e:
$ ps aux | grep 23520
zsh: correct 'aux' to 'auxv' [nyae]? n
root 5111 0.0 0.0 4348 784 pts/7 S+ 16:20 0:00 strace -p 23520
1001 5574 0.0 0.0 7636 920 pts/4 S+ 17:51 0:00 grep 23520
root 23520 0.0 0.0 25604 1532 ? Ss Sep30 0:00 SCREEN /dev/ttyS0 115200
Então eu matei o processo em si:
# kill 23520
# ps aux | grep 23520
root 5665 0.0 0.0 7636 916 pts/4 S+ 17:54 0:00 grep 23520
E finalmente o processo foi encerrado.
Agora comecei o gammu:
sudo /etc/init.d/gammu-smsd start
E está funcionando bem:
$ ps aux | grep gammu-smsd
gammu 6042 0.0 0.0 87776 2652 ? Ss 18:12 0:00 /usr/bin/gammu-smsd --daemon --user gammu --pid /var/run/gammu-smsd.pid
1001 6069 0.0 0.0 7636 912 pts/4 R+ 18:13 0:00 grep gammu-smsd