--- script/advman.orig 2018-07-01 23:09:35.220397779 -0400 +++ script/advman 2018-07-01 23:10:19.464063029 -0400 @@ -1,146 +1,35 @@ #!/bin/bash set -u if [ "${EUID}" -ne 0 ]; then echo "Must be root" exit 1 fi -COMMAND=0 -SCRIPT=$0 -INSTALLPATH=/usr/share/advtty -DEAMON=advttyd -SERVICE=vcomd -DRIVER=advvcom -CONFIGFILE=/etc/advttyd.conf -DEAMONFILE=$INSTALLPATH/$DEAMON -#DKMSFILE=/lib/modules/`uname -r`/updates/dkms/$DRIVER.ko -#KERNEL=`uname -r|cut -c1-3` -if false # [ $KERNEL = "2.4" ] -then -DRIVERFILE=$INSTALLPATH/$DRIVER.o -else -DRIVERFILE=$DRIVER -fi - -echo $DRIVERFILE - -RETURN= OBJECTIVE= -hasdriver() -{ - COUNT=`lsmod | grep $DRIVER -c` - if [ $COUNT -gt 0 ] - then - echo "kernel moduel $DRIVER.ko detected..." - RETURN=1 - else - echo "kernel moduel $DRIVER.ko not installed... try objective \"insert\" first" - RETURN=0 - fi -} - -insdriver() -{ - if false # [ $KERNEL = "2.4" ] - then - echo "inserting kernel moduel $DRIVER.o..." - modprobe $DRIVERFILE - elif false # [ -e $DKMSFILE ] - then - echo "inserting DKMS module $DRIVER.ko..." - modprobe $DKMSFILE - else - echo "inserting kernel moduel $DRIVER.ko..." - modprobe $DRIVERFILE - fi -} - -rmdriver() -{ - if false # [ $KERNEL = "2.4" ] - then - echo "removing kernel moduel $DRIVER..." - rmmod $DRIVER - else - echo "removing kernel moduel $DRIVER.ko..." - rmmod $DRIVER.ko - fi -} - -stopService() -{ - echo "stoping all local services..." - killall -s 9 $SERVICE -} - -startDeamon() -{ - # for 2.4.x kernel, we should make node by myself - if false # [ $KERNEL = "2.4" ] - then - i=1 - while [[ $i -le 256 ]] - do - if [ -z $(awk '$2=="vttyAP"{print $1}' /proc/devices) ] - then - mknod /dev/vttyAP$i c $(awk '$2=="vttyap/%d"{print $1}' /proc/devices) $i - else - mknod /dev/vttyAP$i c $(awk '$2=="vttyAP"{print $1}' /proc/devices) $i - fi - ((i = i + 1)) - done - fi - echo "invoking local deamon..." - install -m 700 -oroot -groot -d /tmp/advmon - #`$DEAMONFILE` - $DEAMONFILE - -} - -stopDeamon() -{ -# COUNT=`ps -A|grep $DEAMON -c` -# while [ $COUNT -gt 0 ] -# do -# PID=`ps -A|grep $DEAMON |sed -r s/^[[:space:]]*//g|sed -r s/"[[:space:]]+.+[[:space:]]+[[:digit:]]+:[[:digit:]]+:[[:digit:]]+[[:space:]]+$DEAMON"/""/g | sed '/^[ \t]*$/d'|head -n 1` -# -# echo "killing $DEAMON $PID" -# -# kill -9 $PID -# COUNT=`ps -A|grep $DEAMON -c` -# done - killall -s 9 $DEAMON - if false # [ $KERNEL = "2.4" ] - then - rm -rf /dev/vttyAP* - fi -} - - usage() { cat << EOF usage: $0 options This script lists helps you manage local advtty service. OPTIONS: -h Show this message -o Execute objective: start - start advtty local service stop - stop advtty local service restart - restart advtty local service - insert - insert $DRIVER.ko module - remove - remove $DRIVER.ko module + insert - insert module + remove - remove module Example: $0 -o start $0 -o restart $0 -o stop EOF } while getopts 'ho:' OPTION @@ -155,61 +44,42 @@ do ;; ?) usage exit ;; esac done case $OBJECTIVE in start) - hasdriver - if [ $RETURN -eq 1 ] - then - echo "starting service...." - startDeamon - else - echo "can not start service..." - insdriver - startDeamon - fi + systemctl start 'advtty-vcom.service' # systemd-notify --ready exit 0 ;; restart) - hasdriver - if [ $RETURN -eq 1 ] - then - echo "starting service...." - startDeamon - else - echo "can not start service..." - insdriver - startDeamon - fi + systemctl reload 'advtty-vcom.service' # systemd-notify --ready exit 0 - ;; stop) - echo stop - stopService - stopDeamon + systemctl stop 'advtty-vcom.service' # systemd-notify --ready exit 0 ;; insert) - insdriver + modprobe 'advvcom' # systemd-notify --ready exit 0 ;; remove) - stopService - stopDeamon - rmdriver + systemctl stop 'advtty-vcom.service' # systemd-notify --ready exit 0 ;; + *) + usage + exit 1 + ;; esac usage