fixed terminate/kill; improved some things
This commit is contained in:
parent
06fb9227bf
commit
5ec382f839
82
session
82
session
|
|
@ -42,6 +42,8 @@ EXIT_ALREADY_IN_SESSION=5
|
||||||
EXIT_NOT_ATTACHED=6
|
EXIT_NOT_ATTACHED=6
|
||||||
EXIT_CONFIG_NOT_GENERATED=7
|
EXIT_CONFIG_NOT_GENERATED=7
|
||||||
EXIT_INVALID_CHOICE=8
|
EXIT_INVALID_CHOICE=8
|
||||||
|
EXIT_ALREADY_LOGGING=9
|
||||||
|
EXIT_NOT_LOGGING=10
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
print_help() {
|
print_help() {
|
||||||
|
|
@ -90,24 +92,7 @@ print_help() {
|
||||||
}
|
}
|
||||||
|
|
||||||
get_available_sessions() {
|
get_available_sessions() {
|
||||||
local socket_paths=(${SOCKET_PREFIX}*${SOCKET_SUFFIX})
|
socket_names=($(abduco | tail +2 | awk '{ print $(NF) }'))
|
||||||
local socket_names=()
|
|
||||||
for spath in ${socket_paths[@]}; do
|
|
||||||
sname=${spath##${SOCKET_PREFIX}}
|
|
||||||
sname=${sname%%${SOCKET_SUFFIX}}
|
|
||||||
socket_names+=("${sname}")
|
|
||||||
done
|
|
||||||
echo ${socket_names[@]}
|
|
||||||
}
|
|
||||||
|
|
||||||
get_available_logs() {
|
|
||||||
local log_paths=(${SOCKET_PREFIX}*${LOG_SUFFIX})
|
|
||||||
local socket_names=()
|
|
||||||
for spath in ${log_paths[@]}; do
|
|
||||||
sname=${spath##${SOCKET_PREFIX}}
|
|
||||||
sname=${sname%%${LOG_SUFFIX}}
|
|
||||||
socket_names+=("${sname}")
|
|
||||||
done
|
|
||||||
echo ${socket_names[@]}
|
echo ${socket_names[@]}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -128,7 +113,7 @@ get_fifo_path() {
|
||||||
|
|
||||||
get_session_pid() {
|
get_session_pid() {
|
||||||
local session_name=$1
|
local session_name=$1
|
||||||
fuser $(get_session_path $session_name) 2> /dev/null
|
abduco | tail +2 | grep $session_name | awk '{ print $(NF-1) }'
|
||||||
}
|
}
|
||||||
|
|
||||||
is_existing_session_path() {
|
is_existing_session_path() {
|
||||||
|
|
@ -257,27 +242,24 @@ case $mode in
|
||||||
session_name=$1
|
session_name=$1
|
||||||
exit_if_existing_session $session_name
|
exit_if_existing_session $session_name
|
||||||
fi
|
fi
|
||||||
session_path=$(get_session_path $session_name)
|
echo "[new session '$session_name']"
|
||||||
CMD="abduco -n $session_name /bin/bash"
|
CMD="abduco -n $session_name /bin/bash"
|
||||||
#echo $CMD
|
#echo $CMD
|
||||||
echo "[new session '$session_name']"
|
|
||||||
eval $CMD
|
eval $CMD
|
||||||
# if [[ "${config[log_session]}" == "yes" ]]; then
|
if [[ "${config[log_session]}" == "yes" ]]; then
|
||||||
# log_path=$(get_log_path $session_name)
|
CMD="echo 'session log on' | abduco -p $session_name"
|
||||||
# touch $log_path && chmod 600 $log_path
|
eval $CMD
|
||||||
# abduco -r -S -q -l -a $session_name > $log_path &
|
fi
|
||||||
# #disown
|
|
||||||
# fi
|
|
||||||
CMD="abduco -a -S -e ${config[detach_char]} $session_name"
|
CMD="abduco -a -S -e ${config[detach_char]} $session_name"
|
||||||
eval $CMD
|
eval $CMD
|
||||||
exit $EXITSUCCESS
|
exit $EXITSUCCESS
|
||||||
;;
|
;;
|
||||||
"log")
|
"log")
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"start"|"stop");;
|
"on"|"off");;
|
||||||
*)
|
*)
|
||||||
echo >&2 "'$(basename $0) log' accepts:"
|
echo >&2 "'$(basename $0) log' accepts:"
|
||||||
echo >&2 " start, stop"
|
echo >&2 " on, off"
|
||||||
exit $EXIT_INVALID_SUBMODE
|
exit $EXIT_INVALID_SUBMODE
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -291,7 +273,7 @@ case $mode in
|
||||||
log_path=$(get_log_path $session_name)
|
log_path=$(get_log_path $session_name)
|
||||||
fifo_path=$(get_fifo_path $session_name)
|
fifo_path=$(get_fifo_path $session_name)
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"start")
|
"on")
|
||||||
if is_logging $session_name; then
|
if is_logging $session_name; then
|
||||||
echo >&2 "Already logging session $session_name."
|
echo >&2 "Already logging session $session_name."
|
||||||
exit $EXIT_ALREADY_LOGGING
|
exit $EXIT_ALREADY_LOGGING
|
||||||
|
|
@ -300,7 +282,7 @@ case $mode in
|
||||||
mkfifo $fifo_path
|
mkfifo $fifo_path
|
||||||
cat $fifo_path | abduco -r -S -a $session_name &> $log_path && rm $log_path $fifo_path & disown
|
cat $fifo_path | abduco -r -S -a $session_name &> $log_path && rm $log_path $fifo_path & disown
|
||||||
;;
|
;;
|
||||||
"stop")
|
"off")
|
||||||
if ! is_logging $session_name; then
|
if ! is_logging $session_name; then
|
||||||
echo 2> "Currently not logging session $session_name."
|
echo 2> "Currently not logging session $session_name."
|
||||||
exit $EXIT_NOT_LOGGING
|
exit $EXIT_NOT_LOGGING
|
||||||
|
|
@ -359,16 +341,7 @@ case $mode in
|
||||||
exit $EXIT_SUCCESS
|
exit $EXIT_SUCCESS
|
||||||
;;
|
;;
|
||||||
"info"|"i")
|
"info"|"i")
|
||||||
# If no session name specified: info for all sessions
|
abduco
|
||||||
if [ -z "$1" ]; then
|
|
||||||
session_name=($(get_available_sessions))
|
|
||||||
else
|
|
||||||
session_name=$1
|
|
||||||
exit_if_nonexisting_session $session_name
|
|
||||||
fi
|
|
||||||
for sname in ${session_name[@]}; do
|
|
||||||
print_session_info $sname
|
|
||||||
done
|
|
||||||
exit $EXIT_SUCCESS
|
exit $EXIT_SUCCESS
|
||||||
;;
|
;;
|
||||||
"help"|"h")
|
"help"|"h")
|
||||||
|
|
@ -390,33 +363,6 @@ case $mode in
|
||||||
done
|
done
|
||||||
exit $EXIT_SUCCESS
|
exit $EXIT_SUCCESS
|
||||||
;;
|
;;
|
||||||
"clean")
|
|
||||||
case "$1" in
|
|
||||||
"log")
|
|
||||||
logs_avail=($(get_available_logs))
|
|
||||||
for sname in ${logs_avail[@]}; do
|
|
||||||
if ! is_existing_session_name $sname; then
|
|
||||||
rm $(get_log_path $sname)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
exit $EXIT_SUCCESS
|
|
||||||
;;
|
|
||||||
"socket")
|
|
||||||
sessions_avail=($(get_available_sessions))
|
|
||||||
for sname in ${sessions_avail[@]}; do
|
|
||||||
PID=$(get_session_pid $sname)
|
|
||||||
if [ -z "$PID" ]; then
|
|
||||||
rm $(get_session_path $sname)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
exit $EXIT_SUCCESS
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo >&2 "'$(basename $0) clean' accepts:"
|
|
||||||
echo >&2 " log, socket"
|
|
||||||
exit $EXIT_INVALID_SUBMODE
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
echo >&2 "Invalid mode: ${mode}"
|
echo >&2 "Invalid mode: ${mode}"
|
||||||
print_help
|
print_help
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue