You are looking at historical revision 31173 of this page. It may differ significantly from its current revision.
Here's an example systemd script for Spiffy the webserver, for use on systems using the systemd daemon manager.
Systemd requires two files to be placed in two different locations:
- A plain text script file named "spiffy"
- A plain text service file named "spiffy.service"
Be sure to make both files executable and owned by root.
The spiffy file, to be placed in /usr/lib/systemd/scripts/
#! /bin/sh # -*- shell-script -*- # This is /etc/init.d/spiffy on Linux systems using systemd # It assumes you have a "spiffy.scm" script in /usr/local/libexec and a log directory in /var/log/spiffy # Select which "csi" program to use; defaults to the one in $PATH CSI=csi # Use a longer trace buffer and a larger nursery size (optional) CSI_ARGS="-:s1m -:a200" DATE_FORMAT="+%Y-%m-%d %H:%M:%S" CONFIG_FILE="/usr/local/libexec/spiffy.scm" LOG_DIR="/var/log/spiffy" start() { if [ ! -d "$LOG_DIR" ]; then echo "Log directory \"$LOG_DIR\" does not exist." exit 1 fi if [ ! -r "$CONFIG_FILE" ]; then echo "Cannot find or read the configuration file. Please create or check the permissions of the following file: \"$CONFIG_FILE\"." exit 1 fi echo "Starting spiffy..." echo "start: " `date "$DATE_FORMAT"` >> /var/log/spiffy/start-stop.log (cd /var/log/spiffy; ulimit -c unlimited ; $CSI $CSI_ARGS -s /usr/local/libexec/spiffy.scm &) </dev/null &> /var/log/spiffy/init.log } stop() { echo "Stopping spiffy..." echo "stop: " `date "$DATE_FORMAT"` >> /var/log/spiffy/start-stop.log pids=`ps ax | grep "[/]usr/local/libexec/spiffy.scm" | awk '{print $1}'` if [ -z "$pids" ] ; then echo "spiffy is not running" else for pid in $pids; do echo "killing " $pid kill $pid done fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 1 start ;; *) exit 1 esac
The spiffy.service file, to be placed in /usr/lib/systemd/system/
[Unit] Description=Spiffy the webserver [Service] Type=oneshot ExecStart=/usr/lib/systemd/scripts/spiffy start ExecStop=/usr/lib/systemd/scripts/spiffy stop RemainAfterExit=yes [Install] WantedBy=multi-user.target
Now you can start, stop or restart Spiffy using the following commands:
$ systemctl start spiffy
$ systemctl stop spiffy
$ systemctl restart spiffy
To enable Spiffy to be started at boot:
$ systemctl enable spiffy