summarylogtreecommitdiffstats
path: root/zfs-pivy.hook
diff options
context:
space:
mode:
Diffstat (limited to 'zfs-pivy.hook')
-rw-r--r--zfs-pivy.hook47
1 files changed, 25 insertions, 22 deletions
diff --git a/zfs-pivy.hook b/zfs-pivy.hook
index 39bc0a9a9391..dd5bd3506211 100644
--- a/zfs-pivy.hook
+++ b/zfs-pivy.hook
@@ -135,27 +135,28 @@ run_hook() {
# Wait 15 seconds for ZFS devices to show up
[ "${zfs_wait}" = "" ] && ZFS_WAIT="15" || ZFS_WAIT="${zfs_wait}"
- # Start pcscd, in case we want it for pivy-zfs
- msg ":: starting pcscd"
- pcscd --force-reader-polling --foreground &
- while [[ ! -f /run/pcscd/pcscd.pid ]]; do
- sleep 0.2
- done
- pcscd_pid=$(cat /run/pcscd/pcscd.pid)
- kill_pcscd() {
- if [[ -n "$pcscd_pid" ]]; then
- kill $pcscd_pid
- fi
- pcscd_pid=
- }
- trap kill_pcscd EXIT
- msg ":: waiting for smartcard devices..."
- sleep 5
- udevadm trigger &
- sleep 1
- pcscd --hotplug
- pivy-tool list >/dev/null 2>/dev/null &
- sleep 2
+ if [[ -f /usr/bin/pcscd ]]; then
+ # Start pcscd, in case we want it for pivy-zfs
+ msg ":: starting pcscd"
+ pcscd --force-reader-polling --foreground &
+ while [[ ! -f /run/pcscd/pcscd.pid ]]; do
+ sleep 0.2
+ done
+ pcscd_pid=$(cat /run/pcscd/pcscd.pid)
+ kill_pcscd() {
+ if [[ -n "$pcscd_pid" ]]; then
+ kill $pcscd_pid
+ fi
+ pcscd_pid=
+ }
+ msg ":: waiting for smartcard devices..."
+ sleep 5
+ udevadm trigger &
+ sleep 1
+ pcscd --hotplug
+ pivy-tool list >/dev/null 2>/dev/null &
+ sleep 2
+ fi
case ${root} in
# root=zfs
@@ -210,7 +211,9 @@ run_hook() {
sleep 1
done
kill $pid > /dev/null 2>&1
- kill_pcscd
+ if [[ -f /usr/bin/pcscd ]]; then
+ kill_pcscd
+ fi
}
run_latehook () {