Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
GAMMU-SMSD(1)			     Gammu			 GAMMU-SMSD(1)

       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  en-
       queued 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 Win-
	      dows 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	recom-
	      mended to	use absolute path to configuration file	as startup di-
	      rectory 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	termi-
	      nate (this is default).

       -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  com-

       -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	 data-

	      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 instruc-

       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 "Er-
       ror 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 con-
       tain any	useful hint, try starting SMSD manually	with exactly same  pa-
       rameters	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 Signals):

	  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 sus-
       pending SMSD for	workaround.

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

       Michal AihaA <>

       2009-2015, Michal AihaA <>

1.41.0				 Sep 27, 2019			 GAMMU-SMSD(1)


Want to link to this manual page? Use this URL:

home | help