I’m trying to implement kloak as a service on my Devuan virtualbox machine and i understand that by the default it won’t work because of init incompatibility so i decided to build a service script.
When i try to start the service i get this message…
user@hostname:$ sudo service kloak start
Starting the process: kloakFound keyboard at: /dev/input/event0
Found uinput at: /dev/uinput
Waiting 500 ms…
Unable to grab device ‘/dev/input/event0’ : Device or resource busy
failed!
Script look like this…what can be the problem?
BEGIN INIT INFO
Provides: kloak
Required-Start: local_fs
Required-Stop: local_fs
Default-Start: 2 3 4 5
Default-Stop: 0 1 6
Short-Description: Kloak
Description: Anti Keystroke deanonymization tool
END INIT INFO
Using the lsb functions to perform the operations.
. /lib/lsb/init-functions
Process name ( For display )
NAME=kloak
Daemon name, where is the actual executable
DAEMON=/usr/sbin/kloak
pid file for the daemon
PIDFILE=/var/run/kloak.pid
If the daemon is not there, then exit.
test -x $DAEMON || exit 5
case $1 in
start)
Checked the PID file exists and check the actual status of process
if [ -e $PIDFILE ]; then
status_of_proc -p $PIDFILE $DAEMON “$NAME process” && status=“0” || status="$?"
If the status is SUCCESS then don’t need to start again.
if [ $status = “0” ]; then
exit # Exit
fi
fi
Start the daemon.
log_daemon_msg “Starting the process” “$NAME”
Start the daemon with the help of start-stop-daemon
Log the message appropriately
if start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON ; then
log_end_msg 0
else
log_end_msg 1
fi
;;
stop)
Stop the daemon.
if [ -e $PIDFILE ]; then
status_of_proc -p $PIDFILE $DAEMON “Stoppping the $NAME process” && status=“0” || status="$?"
if [ “$status” = 0 ]; then
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
/bin/rm -rf $PIDFILE
fi
else
log_daemon_msg “$NAME process is not running”
log_end_msg 0
fi
;;
restart)
Restart the daemon.
$0 stop && sleep 2 && $0 start
;;
status)
Check the status of the process.
if [ -e $PIDFILE ]; then
status_of_proc -p $PIDFILE $DAEMON “$NAME process” && exit 0 || exit $?
else
log_daemon_msg “$NAME Process is not running”
log_end_msg 0
fi
;;
reload)
Reload the process. Basically sending some signal to a daemon to reload
it configurations.
if [ -e $PIDFILE ]; then
start-stop-daemon --stop --signal USR1 --quiet --pidfile $PIDFILE --name $NAME
log_success_msg “$NAME process reloaded successfully”
else
log_failure_msg “$PIDFILE does not exists”
fi
;;
*)
For invalid arguments, print the usage message.
echo “Usage: $0 {start|stop|restart|reload|status}”
exit 2
;;
esac