- New centralized logfile system for Network, DNS & VPN,
- Now kill VPN suprocesses, - Move file config in syscoinfig file, - Misc fixes.
This commit is contained in:
@@ -25,19 +25,18 @@ declare -Ag VPN_JOB_TAB
|
||||
declare -Ag VPN_JOB_ID_LIST
|
||||
declare -Ag VPN_JOB_NAME_IDX
|
||||
|
||||
declare -g VPN_LOG_FILE="/var/log/network/rx3-vpn.log"
|
||||
declare -g VPN_PID_FILE="/var/lib/network/rx3-vpn.pid"
|
||||
declare -g VPN_STATUS_FILE="/var/lib/network/rx3-vpn.status"
|
||||
declare -g VPN_STATUS_LOCK="/var/lock/network/rx3-vpn.status"
|
||||
declare -g VPN_PID_FILE
|
||||
declare -g VPN_STATUS_FILE
|
||||
declare -g VPN_STATUS_LOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if [ ! -v LOG ] || [[ "${LOG}" == "" ]]
|
||||
then
|
||||
export LOG=":"
|
||||
fi
|
||||
#if [ ! -v LOG ] || [[ "${LOG}" == "" ]]
|
||||
#then
|
||||
# export LOG=":"
|
||||
#fi
|
||||
|
||||
|
||||
|
||||
@@ -55,7 +54,7 @@ vpn_config_make()
|
||||
|
||||
local mng_port=$(( 2330 + ${Device/tun/}))
|
||||
|
||||
${LOG} "Creating config File: [${Config_File}] Device: [${Device}] Mng_Port: (${mng_port}) Target_Config: [${Target_Config}]"
|
||||
log_print "VPN" "Creating config File: [${Config_File}] Device: [${Device}] Mng_Port: (${mng_port}) Target_Config: [${Target_Config}]"
|
||||
|
||||
${DEBUG} cp -f ${VPN_TEMPLATE_FILE} ${Config_File}
|
||||
${DEBUG} sed -e "s/TARGET-CFG/${Target_Config}-client.conf/" -e "s/VPN-DEVICE/${Device}/" -e "s/MNG-PORT/${mng_port}/" -i ${Config_File}
|
||||
@@ -77,7 +76,7 @@ vpn_job_tab_load()
|
||||
local job_cmd
|
||||
|
||||
|
||||
${LOG} 1>&2 "Loading Job tab..."
|
||||
log_print "VPN" "Loading Job tab..."
|
||||
|
||||
while IFS= read -r line
|
||||
do
|
||||
@@ -198,7 +197,7 @@ vpn_job_tab_init()
|
||||
|
||||
vpn_config_make "${config_file}" "${dst_device}" "${dst_config}"
|
||||
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]"
|
||||
log_print "VPN" "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]"
|
||||
|
||||
job_id=$(( ${job_id} + 1))
|
||||
fi
|
||||
@@ -224,13 +223,13 @@ vpn_job_tab_deinit()
|
||||
|
||||
if [[ "${job_PId}" -gt 0 ]]
|
||||
then
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Killing : Id: [${job_id}] Name: [${job_name}] PId: [${job_pid}]..."
|
||||
log_print "VPN" "Killing : Id: [${job_id}] Name: [${job_name}] PId: [${job_pid}]..."
|
||||
|
||||
kill -15 ${job_pid}
|
||||
fi
|
||||
done
|
||||
|
||||
${LOG} "Flushing status file..."
|
||||
log_print "VPN" "Flushing status file..."
|
||||
|
||||
file_lock ${VPN_STATUS_LOCK} WRITE 9
|
||||
|
||||
@@ -285,7 +284,7 @@ vpn_supervisor()
|
||||
local job_pid
|
||||
|
||||
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Starting Supervisor..."
|
||||
log_print "VPN" "Starting Supervisor..."
|
||||
|
||||
|
||||
# Main Loop
|
||||
@@ -301,7 +300,7 @@ vpn_supervisor()
|
||||
|
||||
if [[ ${job_pid} == 0 ]] || [[ $rc != 0 ]]
|
||||
then
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Restarting Cmd: [${job_cmd}]..."
|
||||
log_print "VPN" "Restarting Cmd: [${job_cmd}]..."
|
||||
|
||||
eval ${DEBUG} ${job_cmd}
|
||||
|
||||
@@ -315,16 +314,16 @@ vpn_supervisor()
|
||||
tab_assign VPN_JOB_TAB "${job_id},PId" "${job_pid}"
|
||||
tab_assign VPN_JOB_TAB "${job_id},Date" "$(date --rfc-3339=seconds -u)"
|
||||
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
|
||||
log_print "VPN" "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
|
||||
fi
|
||||
done
|
||||
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Saving VPN tab..."
|
||||
log_print "VPN" "Saving VPN tab..."
|
||||
vpn_job_tab_save
|
||||
|
||||
sleep 30
|
||||
sleep ${VPN_LOOP_DELAY}
|
||||
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Refreshing DNS entries..."
|
||||
log_print "VPN" "Refreshing DNS entries..."
|
||||
network_dst_address_refresh_all
|
||||
done
|
||||
}
|
||||
@@ -333,6 +332,38 @@ vpn_supervisor()
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
# vpn_kill_jobs
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
vpn_jobs_kill()
|
||||
{
|
||||
local job_id
|
||||
|
||||
|
||||
for job_id in ${VPN_JOB_ID_LIST}
|
||||
do
|
||||
vpn_job_tab_get "${job_id}"
|
||||
|
||||
${DEBUG} kill -0 "${job_pid}" 2>/dev/null
|
||||
rc=$?
|
||||
|
||||
if [[ ${job_pid} != 0 ]] && [[ $rc == 0 ]]
|
||||
then
|
||||
log_print "VPN" "Killing Job Id: [${job_id}] Job_PId: [${job_pid}] Cmd: [${job_cmd}]..."
|
||||
|
||||
kill -15 "${job_pid}"
|
||||
fi
|
||||
done
|
||||
|
||||
log_print "VPN" "Saving VPN tab..."
|
||||
vpn_job_tab_save
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
# vpn_init
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -347,7 +378,7 @@ vpn_init()
|
||||
file_dir_init ${VPN_STATUS_FILE} root apache
|
||||
file_unlock 9
|
||||
|
||||
file_dir_init ${VPN_LOG_FILE} root apache
|
||||
# file_dir_init ${VPN_LOG_FILE} root apache
|
||||
|
||||
if [[ -s "${VPN_STATUS_FILE}" ]]
|
||||
then
|
||||
@@ -404,11 +435,11 @@ vpn_start()
|
||||
vpn_supervisor &
|
||||
daemon_pid=$!
|
||||
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon started, PId: [${daemon_pid}]"
|
||||
log_print "VPN" "Daemon started, PId: [${daemon_pid}]"
|
||||
|
||||
echo >${VPN_PID_FILE} "${daemon_pid}"
|
||||
else
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon already running PId: [${daemon_pid}]"
|
||||
log_print "VPN" "Daemon already running PId: [${daemon_pid}]"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -437,14 +468,16 @@ vpn_stop()
|
||||
|
||||
if [[ "${daemon_pid}" == "0" ]] || [[ $rc != 0 ]]
|
||||
then
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon already stoped!"
|
||||
log_print "VPN" "Daemon already stoped!"
|
||||
else
|
||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Stoping daemon, PId: [${daemon_pid}]..."
|
||||
log_print "VPN" "Stoping daemon, PId: [${daemon_pid}]..."
|
||||
|
||||
kill -15 ${daemon_pid}
|
||||
fi
|
||||
|
||||
>${VPN_PID_FILE}
|
||||
|
||||
vpn_jobs_kill
|
||||
|
||||
vpn_job_tab_deinit
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user