I've been getting some suggestions on how to figure out why my serial port is busy. Specifically, when I try to start gammu-smsd, it refuses to start on /dev/ttyS0 because it says that port is busy:sudo /etc/init.d/gammu-smsd startSep 30 16:16:51 porkypig gammu-smsd[25355]: Starting phone communication...Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Gammu            - 1.26.1 built 21:46:06 Nov 24 2009 using GCC 4.4]Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Connection       - at115200]Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Connection index - 0]Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Model type       - ]Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Device           - /dev/ttyS0]Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Runing on        - Linux, kernel 2.6.32-42-server (#95-Ubuntu SMP Wed Jul 25 16:10:49 UTC 2012)]Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [System error     - open in serial_open, 16, Device or resource busy]Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: Init:GSM_TryGetModel failed with error DEVICEOPENERROR[2]: Error opening device. Unknown, busy or no permissions.Sep 30 16:16:51 porkypig gammu-smsd[25355]: Can't open device (Error opening device. Unknown, busy or no permissions.:2)Sep 30 16:16:51 porkypig gammu-smsd[25355]: Using PGSQL serviceSep 30 16:16:51 porkypig gammu-smsd[25355]: Disconnecting from PostgreSQLI used two different commands. Both of them find different processes culpable. First I try fuser:fuser -m -u /dev/ttyS0 /dev/ttyS0:          21624(guarddoggps)cd /proc/21624cat statusName:   dropboxState:  S (sleeping)Tgid:   21624Pid:    21624PPid:   1TracerPid:  0Uid:    1001    1001    1001    1001Gid:    1001    1001    1001    1001FDSize: 64Groups: 5 27 1001 5004 VmPeak:   873732 kBVmSize:   806040 kBVmLck:         0 kBVmHWM:    207668 kBVmRSS:    131864 kBVmData:   547820 kBVmStk:       160 kBVmExe:      3524 kBVmLib:     29660 kBVmPTE:      1244 kBThreads:    21SigQ:   0/16382SigPnd: 0000000000000000ShdPnd: 0000000000000000SigBlk: 0000000000000000SigIgn: 0000000001001000SigCgt: 00000001800004c8CapInh: 0000000000000000CapPrm: 0000000000000000CapEff: 0000000000000000CapBnd: ffffffffffffffffCpus_allowed:   ffCpus_allowed_list:  0-7Mems_allowed:   00000000,00000001Mems_allowed_list:  0voluntary_ctxt_switches:    202nonvoluntary_ctxt_switches: 1So fuser says dropbox is using it.Then I use lsof:sudo lsof | grep ttyS0screen    23520        root    6u      CHR               4,64         0t0       1421 /dev/ttyS0lsof says screen (rather than dropbox) is using it. So which of these programs (dropbox or screen) is really causing gammu-smsd to refuse to start because of the resourcing being busy? 
fuser vs lsof to check files in use
lsof;fuser
The short answer is: screen.The slightly longer answer is that the -m flag to fuser tells it to list everything using the mountpoint. Depending on your setup, that probably means all of /dev, but it could also be /. Clearly not what you intended. You'll get a very long list if you do fuser -vm /dev/ttyS0, over 60 lines on my system.Take off the -m and it'll probably give you the same answer as lsof did.