64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
. /etc/rc.subr
|
||
|
|
||
|
name=justask
|
||
|
rcvar=justask_enable
|
||
|
|
||
|
extra_commands="status"
|
||
|
start_precmd="${name}_prestart"
|
||
|
start_cmd="${name}_start"
|
||
|
stop_cmd="${name}_stop"
|
||
|
status_cmd="${name}_status"
|
||
|
|
||
|
load_rc_config $name
|
||
|
: ${justask_enable:=no}
|
||
|
: ${justask_user=justask}
|
||
|
: ${justask_tmux_session_name=justask}
|
||
|
: ${justask_tmux_window_name=justask}
|
||
|
|
||
|
justask_prestart()
|
||
|
{
|
||
|
su -l "$justask_user" -c "exec sh -c 'tmux list-panes -st $justask_tmux_session_name -F \"#{pane_pid}\" >/dev/null 2>&1'"
|
||
|
if [ $? -eq 0 ]; then
|
||
|
echo "justask already running? pane $justask_tmux_session_name exists"
|
||
|
return 1
|
||
|
fi
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
justask_status()
|
||
|
{
|
||
|
su -l "$justask_user" -c "exec sh -c 'tmux list-panes -st $justask_tmux_session_name -F \"#{pane_pid}\" >/dev/null 2>&1'"
|
||
|
if [ $? -eq 0 ]; then
|
||
|
echo "justask is running"
|
||
|
return 0
|
||
|
fi
|
||
|
echo "justask is not running"
|
||
|
return 1
|
||
|
}
|
||
|
|
||
|
justask_start()
|
||
|
{
|
||
|
echo -n "Starting justask: "
|
||
|
su -l "$justask_user" -c "exec tmux new-session -d -s $justask_tmux_session_name -n $justask_tmux_window_name -c /home/justask '/usr/local/bin/bash /usr/home/justask/start.sh'"
|
||
|
if [ $? -eq 0 ]; then
|
||
|
printf "\033[32;1mok\033[0m\n"
|
||
|
else
|
||
|
printf "\033[31;1mfailed\033[0m\n"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
justask_stop()
|
||
|
{
|
||
|
echo -n "Stopping justask: "
|
||
|
su -l "$justask_user" -c "exec sh -c 'tmux list-panes -st $justask_tmux_session_name -F \"#{pane_pid}\"' | xargs -t kill"
|
||
|
if [ $? -eq 0 ]; then
|
||
|
printf "\033[32;1mok\033[0m\n"
|
||
|
else
|
||
|
printf "\033[31;1mfailed\033[0m\n"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
run_rc_command $1
|