Provided by: gammu-smsd_1.40.0-1build2_amd64 bug


       gammu-smsd - SMS daemon for Gammu


          gammu-smsd [OPTION]...


       This manual page documents briefly the gammu-smsd command.

       gammu-smsd  is  a  program that periodically scans GSM modem for received messages, stores
       them in defined storage and also sends messages enqueued in this storage.

       The daemon can reload configuration file after sending hangup signal (SIGHUP) and properly
       terminates itself on SIGINT and SIGTERM.

       Program  accepts following options (please note that long options might be not accepted on
       some platforms):

       -h, --help
              Shows help.

       -v, --version
              Shows version information and compiled in features.

       -c, --config=file
              Configuration file to use, default is /etc/gammu-smsdrc, on  Windows  there  is  no
              default and configuration file path has to be always specified.

              If  you run SMSD as a system daemon (or service), it is recommended to use absolute
              path to configuration file as startup directory might be different than you expect.

              See gammu-smsdrc for configuration file documentation.

       -p, --pid=file
              Lock file for storing pid, empty for no locking. Not supported on Windows.

       -U, --user=user
              Drop daemon privileges to chosen user after starting.

       -G, --group=group
              Drop daemon privileges to chosen group after starting.

       -d, --daemon
              Daemonize program on startup. Not supported on Windows.

       -i, --install-service
              Installs SMSD as a Windows service.

       -u, --uninstall-service
              Uninstalls SMSD as a Windows service.

       -s, --start-service
              Starts SMSD Windows service.

       -k, --stop-service
              Stops SMSD Windows service.

       -f, --max-failures=count
              Terminate after defined number of  failures.  Use  0  to  not  terminate  (this  is

       -X, --suicide=seconds
              Kills itself after number of seconds.

       -S, --run-service
              Runs  pogram  as  SMSD  Windows service. This should not be used manually, but only
              Windows Service manager should use this command.

       -n, --service-name=name
              Defines name of a Windows service. Each service requires an unique name, so if  you
              want  to  run  several  SMSD  instances, you have to name each service differently.
              Default is "GammuSMSD".

       -l, --use-log
              Use logging as configured in config file (default).

       -L, --no-use-log
              Do not use logging as configured in config file.

       -e, --install-event-log
              Installs Windows EventLog description to registry.

              New in version 1.31.90.

       -E, --uninstall-event-log
              Uninstalls Windows EventLog description to registry.

              New in version 1.31.90.


       SMSD can be controlled using following POSIX signals (if your platform supports this):

       SIGHUP Reload configuration and reconnect to phone.

              Gracefully shutdown the daemon.

              Used internally for gammu-smsd -X

              Suspends SMSD operation, closing connection to phone and database.

              Resumes SMSD operation (after previous suspend).

       Changed in version 1.22.91: Added support for SIGHUP.

       Changed in version 1.22.95: Added support for SIGALRM.

       Changed in version 1.31.90: Added support for SIGUSR1 and SIGUSR2.


   Linux/Unix Examples
       Start SMSD as a daemon on Linux:

          gammu-smsd --config /etc/gammu-smsdrc --pid /var/run/ --daemon

       Start SMSD as a daemon on Linux with reduced privileges:

          gammu-smsd --config /etc/gammu-smsdrc --pid /var/run/ --daemon --user gammu --group gammu

   SMSD as a system wide daemon
       To use SMSD as a daemon, you might want to use init script which is shipped with Gammu  in
       contrib/init  directory.  It  is  not  installed by default, either install it manually or
       check INSTALL file for instructions.

       Under Windows 7 you might need to disable UAC (user account control) before  you  will  be
       able to install SMSD service.

   Windows Service Examples
       Install Gammu SMSD Windows service:

          gammu-smsd.exe -c c:\Gammu\smsdrc -i

       Install two instances of SMSD Windows service:

          gammu-smsd.exe -c c:\Gammu\smsdrc-1 -n Gammu-first-phone -i

          gammu-smsd.exe -c c:\Gammu\smsdrc-2 -n Gammu-second-phone -i

       To uninstall a Windows service:

          gammu-smsd.exe -u

   Troubleshooting Windows Service
       If  Gammu  fails  to  start  as  a  Windows service (you will usually get "Error 1053: The
       service did not respond to the start or control request in a timely fashion"), first check
       your  SMSD  logs.  If they do not contain any useful hint, try starting SMSD manually with
       exactly same parameters as you installed the service (without -i).

       For example the command line can look like:

          gammu-smsd.exe -c smsdrc

       You now should be able to get errors from SMSD even if it fails to start as a service.

   Invoking Gammu and suspending SMSD
       As you can not run Gammu and Gammu SMSD at same time on signle device, you can  workaround
       this limitation by suspending SMSD temporarily using SIGUSR1 and SIGUSR2 signals (see also

          SMSD_PID=`pidof gammu-smsd`
          if [ -z "$SMSD_PID" ] ; then
              echo "Failed to figure out SMSD PID!"
              kill -SIGUSR1 $SMSD_PID
              gammu identify
              kill -SIGUSR2 $SMSD_PID

       Or even create a gammu-safe script:

          SMSD_PID=`pidof gammu-smsd`
          if [ -z "$SMSD_PID" ] ; then
            gammu $@
            tty=$(lsof |grep -E "gammu-sms\s+$SMSD_PID\s+.*/dev/tty*"|awk {'print $NF'})
            kill -SIGUSR1 $SMSD_PID
            while test "$(fuser $ttyfuser $tty 2> /dev/null|xargs)" = $SMSD_PID
              sleep 1
            sleep 1
            gammu $@
            kill -SIGUSR2 $SMSD_PID
            while test "$(fuser $ttyfuser $tty 2> /dev/null|xargs)" != $SMSD_PID
              sleep 1
            sleep 1


       You can not use same phone by more programs in same time. However  in  case  you  did  not
       enable  locking in [gammu] section, it might be able to start the communication with phone
       from more programs. In this case neither of the programs will probably work, see  Invoking
       Gammu and suspending SMSD for workaround.

       There  is  no  way  to  detect  that SMS message is reply to another by looking at message
       headers. The only way to achieve this is to add some token to the message and let the user
       include it in the message on reply.


       Michal Čihař <>


       2009-2015, Michal Čihař <>