summaryrefslogtreecommitdiffstats
path: root/system/pcsc-lite/rc.pcscd
diff options
context:
space:
mode:
Diffstat (limited to 'system/pcsc-lite/rc.pcscd')
-rw-r--r--system/pcsc-lite/rc.pcscd55
1 files changed, 55 insertions, 0 deletions
diff --git a/system/pcsc-lite/rc.pcscd b/system/pcsc-lite/rc.pcscd
new file mode 100644
index 0000000000..480414de62
--- /dev/null
+++ b/system/pcsc-lite/rc.pcscd
@@ -0,0 +1,55 @@
+#!/bin/sh
+#
+# Start/Stop/Restart the PC/SC-lite smart card daemon.
+#
+# pcscd should be started after pcmcia and shut down
+# before it for smooth experience with PCMCIA readers.
+#
+
+PIDFILE=/var/run/pcscd.pid
+PCSCD_OPTS=""
+
+# 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/update-reader.conf
+ /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)
+ rm -f $PIDFILE
+ fi
+ # Just in case:
+ killall pcscd 1>&2 >/dev/null
+}
+
+# Restart
+pcscd_restart() {
+ pcscd_stop
+ sleep 3
+ pcscd_start
+}
+
+case "$1" in
+'start')
+ pcscd_start
+ ;;
+'stop')
+ pcscd_stop
+ ;;
+'restart')
+ pcscd_restart
+ ;;
+*)
+ echo "usage $0 start|stop|restart"
+esac