diff --git a/install.sh b/install.sh index 6daac67..95dc3ef 100755 --- a/install.sh +++ b/install.sh @@ -134,4 +134,5 @@ install_exec hostconfig/hostconfig "$DESTDIR$usr_sbindir/h install_exec fon/fon.sh "$DESTDIR$usr_bindir/fon" install_exec nfsdtop/nfsdtop "$DESTDIR$usr_sbindir/nfsdtop" install_data serial-log/serial-log\@.service "$DESTDIR$systemdunitdir/serial-log@.service" +install_exec serial-log/serial-log "$DESTDIR$usr_exec_prefix/libexec/serial-log" exit diff --git a/serial-log/serial-log b/serial-log/serial-log new file mode 100755 index 0000000..21e2b49 --- /dev/null +++ b/serial-log/serial-log @@ -0,0 +1,14 @@ +#! /bin/bash + +(($#==1)) || { echo "usage: $0 device-name" >&2; exit 1; } + +devnam="$1" + +while true; do + until /usr/bin/stty -F "/dev/$devnam" 115200 -echo 2>/dev/null; do + sleep 60 + done + until cat "/dev/$devnam" >> /var/log/$devnam.log 2>&1;do + sleep 1 + done +done diff --git a/serial-log/serial-log@.service b/serial-log/serial-log@.service index 5f0c878..917907c 100644 --- a/serial-log/serial-log@.service +++ b/serial-log/serial-log@.service @@ -2,11 +2,8 @@ Description=TTY logger [Service] -ExecStartPre=/usr/bin/stty -F /dev/%I 115200 -echo -ExecStart=-/usr/bin/sh -c "/usr/bin/cat /dev/%I >> /var/log/%I.log 2>&1" -Type=idle -Restart=always -RestartSec=0 +ExecStart=/usr/libexec/serial-log %I +Type=simple UtmpIdentifier=%I [Install]