#!/bin/sh # # Start/Stop/Restart the PC/SC-lite smart card daemon. # PIDFILE=/var/run/pcscd/pcscd.pid # Get $PCSCD_OPTS: if [ -r /etc/default/pcscd ]; then . /etc/default/pcscd fi # Start pcscd_start() { if [ -x /usr/sbin/pcscd ]; then if [ -e "$PIDFILE" ]; then echo "PC/SC-lite daemon already started!" else echo "Starting PC/SC-lite smart card daemon: /usr/sbin/pcscd $PCSCD_OPTS" /usr/sbin/pcscd $PCSCD_OPTS fi fi } # Stop pcscd_stop() { echo "Stopping PC/SC-lite smart card daemon..." if [ -e "$PIDFILE" ]; then kill $(cat $PIDFILE | tr -d '\0') rm -f $PIDFILE 2>&1 >/dev/null else killall --ns $$ pcscd 2>&1 >/dev/null fi } # Restart pcscd_restart() { pcscd_stop sleep 3 pcscd_start } # Status pcscd_status() { if [ -e "$PIDFILE" ]; then echo "pcscd is running." else echo "pcscd is stopped." fi } case "$1" in 'start') pcscd_start ;; 'stop') pcscd_stop ;; 'restart') pcscd_restart ;; 'status') pcscd_status ;; *) echo "usage: $0 start|stop|restart|status" esac