mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-10 23:41:22 +00:00
Merge branch 'master' into dev
# Conflicts: # ShellCrash.tar.gz # bin/version # scripts/menus/5_task.sh # version
This commit is contained in:
@@ -4,15 +4,16 @@ __IS_LIB_LOGGER=1
|
|||||||
|
|
||||||
#日志工具
|
#日志工具
|
||||||
. "$CRASHDIR"/libs/web_json.sh
|
. "$CRASHDIR"/libs/web_json.sh
|
||||||
#$1日志内容$2显示颜色$3是否推送
|
#$1日志内容$2显示颜色$3是否推送$4是否覆盖上一条
|
||||||
logger() {
|
logger() {
|
||||||
TMPDIR=/tmp/ShellCrash
|
TMPDIR=/tmp/ShellCrash
|
||||||
[ -n "$2" -a "$2" != 0 ] && printf "\033[%sm%s\033[0m\n" "$2" "$1"
|
[ -n "$2" -a "$2" != 0 ] && printf "\033[%sm%s\033[0m\n" "$2" "$1"
|
||||||
log_text="$(date "+%G-%m-%d_%H:%M:%S")~$1"
|
log_text="$(date "+%G-%m-%d_%H:%M:%S")~$1"
|
||||||
|
[ "$4" = on ] && sed -i "/$1/d" "$TMPDIR"/ShellCrash.log
|
||||||
echo "$log_text" >>"$TMPDIR"/ShellCrash.log
|
echo "$log_text" >>"$TMPDIR"/ShellCrash.log
|
||||||
[ "$(wc -l "$TMPDIR"/ShellCrash.log | awk '{print $1}')" -gt 199 ] && sed -i '1,20d' "$TMPDIR"/ShellCrash.log
|
[ "$(wc -l "$TMPDIR"/ShellCrash.log | awk '{print $1}')" -gt 199 ] && sed -i '1,20d' "$TMPDIR"/ShellCrash.log
|
||||||
#推送远程日志
|
#推送远程日志
|
||||||
[ -z "$3" ] && {
|
[ "$3" != off ] && {
|
||||||
[ -n "$device_name" ] && log_text="$log_text($device_name)"
|
[ -n "$device_name" ] && log_text="$log_text($device_name)"
|
||||||
[ -n "$push_TG" ] && {
|
[ -n "$push_TG" ] && {
|
||||||
url="https://api.telegram.org/bot${push_TG}/sendMessage"
|
url="https://api.telegram.org/bot${push_TG}/sendMessage"
|
||||||
|
|||||||
@@ -1,27 +1,38 @@
|
|||||||
|
|
||||||
crondir="$(crond -h 2>&1 | grep -oE 'Default:.*' | awk -F ":" '{print $2}')"
|
crondir="$(crond -h 2>&1 | grep -oE 'Default:.*' | awk -F ":" '{print $2}'| tr -d ' ')"
|
||||||
[ ! -w "$crondir" ] && crondir="/etc/storage/cron/crontabs"
|
[ ! -w "$crondir" ] && crondir="/etc/storage/cron/crontabs"
|
||||||
[ ! -w "$crondir" ] && crondir="/var/spool/cron/crontabs"
|
[ ! -w "$crondir" ] && crondir="/var/spool/cron/crontabs"
|
||||||
[ ! -w "$crondir" ] && crondir="/var/spool/cron"
|
[ ! -w "$crondir" ] && crondir="/var/spool/cron"
|
||||||
|
[ -z "$USER" ] && USER=$(whoami 2>/dev/null)
|
||||||
tmpcron=/tmp/cron_tmp
|
tmpcron=/tmp/cron_tmp
|
||||||
touch "$tmpcron"
|
touch "$tmpcron"
|
||||||
|
|
||||||
croncmd() { #定时任务工具
|
cronadd() { #定时任务工具
|
||||||
if [ -w "$crondir" ] && [ -n "$USER" ];then
|
if crontab -h 2>&1 | grep -q '\-l'; then
|
||||||
[ "$1" = "-l" ] && cat "$crondir"/"$USER" 2>/dev/null
|
|
||||||
[ -f "$1" ] && cat "$1" >"$crondir"/"$USER"
|
|
||||||
killall -HUP crond 2>/dev/null
|
|
||||||
elif [ -n "$(crontab -h 2>&1 | grep '\-l')" ]; then
|
|
||||||
crontab "$1"
|
crontab "$1"
|
||||||
|
else
|
||||||
|
cat "$1" >"$crondir"/"$USER" && cru a REFRESH "0 0 1 1 * /bin/true" 2>/dev/null
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
cronload() { #定时任务工具
|
||||||
|
if [ -f "$crondir/$USER" ];then
|
||||||
|
cat "$crondir"/"$USER" 2>/dev/null
|
||||||
|
elif crontab -h 2>&1 | grep -q '\-l'; then
|
||||||
|
crontab -l
|
||||||
else
|
else
|
||||||
echo "找不到可用的crond或者crontab应用!No available crond or crontab application can be found!"
|
echo "找不到可用的crond或者crontab应用!No available crond or crontab application can be found!"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
cronset() { #定时任务设置
|
cronset() { #定时任务设置
|
||||||
# 参数1代表要移除的关键字,参数2代表要添加的任务语句
|
# 参数1代表要移除的关键字,参数2代表要添加的任务语句
|
||||||
croncmd -l >"$tmpcron"
|
cronload | grep -v '^$' | grep -vF "$1" >"$tmpcron"
|
||||||
sed -i "/$1/d" "$tmpcron"
|
[ -n "$2" ] && echo "$2" >>"$tmpcron"
|
||||||
echo "$2" >>"$tmpcron"
|
cronadd "$tmpcron"
|
||||||
croncmd "$tmpcron"
|
#华硕/Padavan固件存档在本地,其他则删除
|
||||||
rm -f "$tmpcron"
|
if [ -d /jffs ] || [ -d /etc/storage/ShellCrash ];then
|
||||||
|
mv -f "$tmpcron" "$CRASHDIR"/task/cron
|
||||||
|
else
|
||||||
|
rm -f "$tmpcron"
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,18 +13,26 @@ webget(){
|
|||||||
#参数【$1】代表下载目录,【$2】代表在线地址
|
#参数【$1】代表下载目录,【$2】代表在线地址
|
||||||
#参数【$3】代表输出显示,【$4】不启用重定向
|
#参数【$3】代表输出显示,【$4】不启用重定向
|
||||||
#参数【$5】代表验证证书,【$6】使用自定义UA
|
#参数【$5】代表验证证书,【$6】使用自定义UA
|
||||||
[ -n "$6" ] && agent="--user-agent \"$6\""
|
[ -n "$6" ] && agent="--user-agent $6"
|
||||||
if wget --help 2>&1 | grep -q 'show-progress' >/dev/null 2>&1; then
|
if wget --help 2>&1 | grep -q 'show-progress' >/dev/null 2>&1; then
|
||||||
[ "$3" = "echooff" ] && progress='-q' || progress='-q --show-progress'
|
[ "$3" = "echooff" ] && progress='-q' || progress='-q --show-progress'
|
||||||
[ "$4" = "rediroff" ] && redirect='--max-redirect=0' || redirect=''
|
[ "$4" = "rediroff" ] && redirect='--max-redirect=0' || redirect=''
|
||||||
[ "$5" = "skipceroff" ] && certificate='' || certificate='--no-check-certificate'
|
if [ "$5" = "skipceroff" ] || [ "$skip_cert" = OFF ];then
|
||||||
|
certificate=''
|
||||||
|
else
|
||||||
|
certificate='--no-check-certificate'
|
||||||
|
fi
|
||||||
wget -Y on $agent $progress $redirect $certificate --timeout=3 -O "$1" "$url" && return 0 #成功则退出否则重试
|
wget -Y on $agent $progress $redirect $certificate --timeout=3 -O "$1" "$url" && return 0 #成功则退出否则重试
|
||||||
wget -Y off $agent $progress $redirect $certificate --timeout=5 -O "$1" "$2"
|
wget -Y off $agent $progress $redirect $certificate --timeout=5 -O "$1" "$2"
|
||||||
return $?
|
return $?
|
||||||
elif curl --version >/dev/null 2>&1; then
|
elif curl --version >/dev/null 2>&1; then
|
||||||
[ "$3" = "echooff" ] && progress='-s' || progress='-#'
|
[ "$3" = "echooff" ] && progress='-s' || progress='-#'
|
||||||
[ "$4" = "rediroff" ] && redirect='' || redirect='-L'
|
[ "$4" = "rediroff" ] && redirect='' || redirect='-L'
|
||||||
[ "$5" = "skipceroff" ] && certificate='' || certificate='-k'
|
if [ "$5" = "skipceroff" ] || [ "$skip_cert" = OFF ];then
|
||||||
|
certificate=''
|
||||||
|
else
|
||||||
|
certificate='-k'
|
||||||
|
fi
|
||||||
if curl --version | grep -q '^curl 8.' && ckcmd base64; then
|
if curl --version | grep -q '^curl 8.' && ckcmd base64; then
|
||||||
auth_b64=$(printf '%s' "$authentication" | base64)
|
auth_b64=$(printf '%s' "$authentication" | base64)
|
||||||
result=$(curl $agent -w '%{http_code}' --connect-timeout 3 --proxy-header "Proxy-Authorization: Basic $auth_b64" $progress $redirect $certificate -o "$1" "$url")
|
result=$(curl $agent -w '%{http_code}' --connect-timeout 3 --proxy-header "Proxy-Authorization: Basic $auth_b64" $progress $redirect $certificate -o "$1" "$url")
|
||||||
|
|||||||
@@ -187,9 +187,7 @@ task_add() {
|
|||||||
# 任务删除
|
# 任务删除
|
||||||
task_del() {
|
task_del() {
|
||||||
# 删除定时任务
|
# 删除定时任务
|
||||||
croncmd -l >"$TMPDIR"/cron
|
cronset "$1"
|
||||||
sed -i "/$1/d" "$TMPDIR"/cron && croncmd "$TMPDIR"/cron
|
|
||||||
rm -f "$TMPDIR"/cron
|
|
||||||
# 删除条件任务
|
# 删除条件任务
|
||||||
sed -i "/$1/d" "$CRASHDIR"/task/cron 2>/dev/null
|
sed -i "/$1/d" "$CRASHDIR"/task/cron 2>/dev/null
|
||||||
sed -i "/$1/d" "$CRASHDIR"/task/bfstart 2>/dev/null
|
sed -i "/$1/d" "$CRASHDIR"/task/bfstart 2>/dev/null
|
||||||
@@ -312,7 +310,7 @@ task_manager() {
|
|||||||
line_break
|
line_break
|
||||||
separator_line "="
|
separator_line "="
|
||||||
# 抽取并生成临时列表
|
# 抽取并生成临时列表
|
||||||
croncmd -l >"$TMPDIR"/task_cronlist
|
cronload >"$TMPDIR"/task_cronlist
|
||||||
cat "$TMPDIR"/task_cronlist "$CRASHDIR"/task/running 2>/dev/null | sort -u | grep -oE "task/task.sh .*" | cut -d ' ' -f 2- >"$TMPDIR"/task_list
|
cat "$TMPDIR"/task_cronlist "$CRASHDIR"/task/running 2>/dev/null | sort -u | grep -oE "task/task.sh .*" | cut -d ' ' -f 2- >"$TMPDIR"/task_list
|
||||||
cat "$CRASHDIR"/task/bfstart "$CRASHDIR"/task/afstart "$CRASHDIR"/task/affirewall 2>/dev/null | cut -d ' ' -f 2- >>"$TMPDIR"/task_list
|
cat "$CRASHDIR"/task/bfstart "$CRASHDIR"/task/afstart "$CRASHDIR"/task/affirewall 2>/dev/null | cut -d ' ' -f 2- >>"$TMPDIR"/task_list
|
||||||
cat "$TMPDIR"/task_cronlist 2>/dev/null | sort -u | grep -oE " #.*" | grep -v "守护" | awk -F '#' '{print "0 旧版任务-"$2}' >>"$TMPDIR"/task_list
|
cat "$TMPDIR"/task_cronlist 2>/dev/null | sort -u | grep -oE " #.*" | grep -v "守护" | awk -F '#' '{print "0 旧版任务-"$2}' >>"$TMPDIR"/task_list
|
||||||
@@ -368,9 +366,8 @@ task_manager() {
|
|||||||
read -r -p "请输入对应标号> " res
|
read -r -p "请输入对应标号> " res
|
||||||
if [ "$res" = 1 ]; then
|
if [ "$res" = 1 ]; then
|
||||||
cronname=$(echo "$task_txt" | awk -F '-' '{print $2}')
|
cronname=$(echo "$task_txt" | awk -F '-' '{print $2}')
|
||||||
croncmd -l >"$TMPDIR"/conf && sed -i "/$cronname/d" "$TMPDIR"/conf && croncmd "$TMPDIR"/conf
|
cronset "$cronname"
|
||||||
sed -i "/$cronname/d" $clashdir/tools/cron 2>/dev/null
|
sed -i "/$cronname/d" "$CRASHDIR"/task/cron 2>/dev/null
|
||||||
rm -f "$TMPDIR"/conf
|
|
||||||
|
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
. "$CRASHDIR"/libs/set_cron.sh
|
. "$CRASHDIR"/libs/set_cron.sh
|
||||||
|
|
||||||
bot_tg_start(){
|
bot_tg_start(){
|
||||||
bot_tg_stop
|
|
||||||
. "$CRASHDIR"/starts/start_legacy.sh
|
. "$CRASHDIR"/starts/start_legacy.sh
|
||||||
start_legacy "$CRASHDIR/menus/bot_tg.sh" 'bot_tg'
|
start_legacy "$CRASHDIR/menus/bot_tg.sh" 'bot_tg'
|
||||||
bot_tg_cron
|
bot_tg_cron
|
||||||
|
|||||||
@@ -14,7 +14,11 @@ task_logger(){
|
|||||||
[ "$task_push" = 1 ] && push= || push=off
|
[ "$task_push" = 1 ] && push= || push=off
|
||||||
[ -n "$2" -a "$2" != 0 ] && echo -e "\033[$2m$1\033[0m"
|
[ -n "$2" -a "$2" != 0 ] && echo -e "\033[$2m$1\033[0m"
|
||||||
[ "$3" = 'off' ] && push=off
|
[ "$3" = 'off' ] && push=off
|
||||||
echo "$1" |grep -qE '(每隔|时每)([1-9]|[1-9][0-9])分钟' || logger "$1" 0 "$push"
|
echo "$1" |grep -qE '(每隔|时每)([1-9]|[1-9][0-9])分钟' && {
|
||||||
|
push=off
|
||||||
|
cover=on
|
||||||
|
}
|
||||||
|
logger "$1" 0 "$push" "$cover"
|
||||||
}
|
}
|
||||||
|
|
||||||
#任务命令
|
#任务命令
|
||||||
@@ -31,7 +35,7 @@ update_core(){ #自动更新内核
|
|||||||
task_logger "任务【自动更新内核】中止-未检测到版本更新"
|
task_logger "任务【自动更新内核】中止-未检测到版本更新"
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
. "$CRASHDIR"/libs/core_webget.sh && core_webget #调用下载工具
|
. "$CRASHDIR"/libs/core_tools.sh && core_webget #调用下载工具
|
||||||
case "$?" in
|
case "$?" in
|
||||||
0)
|
0)
|
||||||
task_logger "任务【自动更新内核】下载完成,正在重启服务!"
|
task_logger "任务【自动更新内核】下载完成,正在重启服务!"
|
||||||
@@ -57,18 +61,18 @@ update_scripts(){ #自动更新脚本
|
|||||||
task_logger "任务【自动更新脚本】中止-未检测到版本更新"
|
task_logger "任务【自动更新脚本】中止-未检测到版本更新"
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
get_bin "$TMPDIR"/clashfm.tar.gz "bin/update.tar.gz"
|
get_bin "$TMPDIR"/ShellCrash.tar.gz "ShellCrash.tar.gz"
|
||||||
if [ "$?" != "0" ];then
|
if [ "$?" != "0" ];then
|
||||||
rm -rf "$TMPDIR"/clashfm.tar.gz
|
rm -rf "$TMPDIR"/ShellCrash.tar.gz
|
||||||
task_logger "任务【自动更新内核】出错-下载失败!"
|
task_logger "任务【自动更新内核】出错-下载失败!"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
#停止服务
|
#停止服务
|
||||||
"$CRASHDIR"/start.sh stop
|
"$CRASHDIR"/start.sh stop
|
||||||
#解压
|
#解压
|
||||||
tar -zxf "$TMPDIR"/clashfm.tar.gz ${tar_para} -C "$CRASHDIR"/
|
tar -zxf "$TMPDIR"/ShellCrash.tar.gz ${tar_para} -C "$CRASHDIR"/
|
||||||
if [ $? -ne 0 ];then
|
if [ $? -ne 0 ];then
|
||||||
rm -rf "$TMPDIR"/clashfm.tar.gz
|
rm -rf "$TMPDIR"/ShellCrash.tar.gz
|
||||||
task_logger "任务【自动更新内核】出错-解压失败!"
|
task_logger "任务【自动更新内核】出错-解压失败!"
|
||||||
"$CRASHDIR"/start.sh start
|
"$CRASHDIR"/start.sh start
|
||||||
return 1
|
return 1
|
||||||
@@ -115,7 +119,7 @@ reset_firewall(){ #重设透明路由防火墙
|
|||||||
"$CRASHDIR"/start.sh afstart
|
"$CRASHDIR"/start.sh afstart
|
||||||
}
|
}
|
||||||
ntp(){
|
ntp(){
|
||||||
[ "$crashcore" != singbox ] && ckcmd ntpd && ntpd -n -q -p 203.107.6.88 >/dev/null 2>&1 || exit 0
|
ckcmd ntpd && ntpd -n -q -p 203.107.6.88 >/dev/null 2>&1 || exit 0
|
||||||
}
|
}
|
||||||
web_save_auto(){
|
web_save_auto(){
|
||||||
. "$CRASHDIR"/libs/web_save.sh && web_save
|
. "$CRASHDIR"/libs/web_save.sh && web_save
|
||||||
|
|||||||
@@ -33,14 +33,12 @@ if [ -n "$test" -o -n "$(pidof CrashCore)" ]; then
|
|||||||
sleep 5
|
sleep 5
|
||||||
logger ShellCrash服务已启动!
|
logger ShellCrash服务已启动!
|
||||||
} &
|
} &
|
||||||
ckcmd mtd_storage.sh && mtd_storage.sh save >/dev/null 2>&1 & #Padavan保存/etc/storage
|
ckcmd mtd_storage.sh && mtd_storage.sh save >/dev/null 2>&1 #Padavan保存/etc/storage
|
||||||
#加载定时任务
|
#加载定时任务
|
||||||
[ -s "$CRASHDIR"/task/cron ] && croncmd "$CRASHDIR"/task/cron
|
[ -s "$CRASHDIR"/task/cron ] && cronadd "$CRASHDIR"/task/cron
|
||||||
[ -s "$CRASHDIR"/task/running ] && {
|
[ -s "$CRASHDIR"/task/running ] && {
|
||||||
cronset '运行时每'
|
cronset '运行时每'
|
||||||
while read line; do
|
cronadd "$CRASHDIR"/task/running
|
||||||
cronset '2fjdi124dd12s' "$line"
|
|
||||||
done <"$CRASHDIR"/task/running
|
|
||||||
}
|
}
|
||||||
[ "$start_old" = "ON" ] && cronset '保守模式守护进程' "* * * * * /bin/sh $CRASHDIR/starts/start_legacy_wd.sh shellcrash #ShellCrash保守模式守护进程"
|
[ "$start_old" = "ON" ] && cronset '保守模式守护进程' "* * * * * /bin/sh $CRASHDIR/starts/start_legacy_wd.sh shellcrash #ShellCrash保守模式守护进程"
|
||||||
#加载条件任务
|
#加载条件任务
|
||||||
@@ -48,7 +46,7 @@ if [ -n "$test" -o -n "$(pidof CrashCore)" ]; then
|
|||||||
[ -s "$CRASHDIR"/task/affirewall -a -s /etc/init.d/firewall -a ! -f /etc/init.d/firewall.bak ] && {
|
[ -s "$CRASHDIR"/task/affirewall -a -s /etc/init.d/firewall -a ! -f /etc/init.d/firewall.bak ] && {
|
||||||
#注入防火墙
|
#注入防火墙
|
||||||
line=$(grep -En "fw.* restart" /etc/init.d/firewall | cut -d ":" -f 1)
|
line=$(grep -En "fw.* restart" /etc/init.d/firewall | cut -d ":" -f 1)
|
||||||
sed -i.bak "${line}a\\. "$CRASHDIR"/task/affirewall" /etc/init.d/firewall
|
sed -i.bak "${line}a\\. $CRASHDIR/task/affirewall" /etc/init.d/firewall
|
||||||
line=$(grep -En "fw.* start" /etc/init.d/firewall | cut -d ":" -f 1)
|
line=$(grep -En "fw.* start" /etc/init.d/firewall | cut -d ":" -f 1)
|
||||||
sed -i "${line}a\\. $CRASHDIR/task/affirewall" /etc/init.d/firewall
|
sed -i "${line}a\\. $CRASHDIR/task/affirewall" /etc/init.d/firewall
|
||||||
} &
|
} &
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ get_core_config() { #下载内核配置文件
|
|||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
retry=$((retry + 1))
|
retry=$((retry + 1))
|
||||||
logger "配置文件获取失败!" 31
|
logger "配置文件获取失败!" 31 off on
|
||||||
if [ "$retry" = 1 ]; then
|
if [ "$retry" = 1 ]; then
|
||||||
echo -e "\033[32m尝试更新服务器列表并使用其他服务器获取配置!\033[0m"
|
echo -e "\033[32m尝试更新服务器列表并使用其他服务器获取配置!\033[0m"
|
||||||
update_servers
|
update_servers
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ fi
|
|||||||
#写入环境变量
|
#写入环境变量
|
||||||
set_profile "$profile"
|
set_profile "$profile"
|
||||||
#启动进程或删除守护进程
|
#启动进程或删除守护进程
|
||||||
if [ -f "$CRASHDIR"/.dis_startup ];then
|
if [ -f "$CRASHDIR"/.dis_startup ] || [ -f "$CRASHDIR"/.start_error ];then
|
||||||
cronset "保守模式守护进程"
|
cronset "保守模式守护进程"
|
||||||
else
|
else
|
||||||
"$CRASHDIR"/start.sh start
|
"$CRASHDIR"/start.sh start
|
||||||
|
|||||||
@@ -71,11 +71,11 @@ auto_start(){
|
|||||||
set_profile '/etc/profile'
|
set_profile '/etc/profile'
|
||||||
}
|
}
|
||||||
#启动服务
|
#启动服务
|
||||||
if [ ! -f "$CRASHDIR"/.dis_startup ]; then
|
if [ ! -f "$CRASHDIR"/.dis_startup ] && [ ! -f "$CRASHDIR"/.start_error ]; then
|
||||||
#AX6S/AX6000修复tun功能
|
#AX6S/AX6000修复tun功能
|
||||||
[ -s "$CRASHDIR"/tools/tun.ko ] && tunfix
|
[ -s "$CRASHDIR"/tools/tun.ko ] && tunfix
|
||||||
#小米7000/小米万兆修复tproxy
|
#小米7000/小米万兆修复tproxy
|
||||||
[ -f /etc/init.d/qca-nss-ecm ] && [ "$redir_mod" = 'Tproxy' ] && tproxyfix
|
[ -f /etc/init.d/qca-nss-ecm ] && echo "$redir_mod" | grep -q 'Tproxy' && tproxyfix
|
||||||
#自动覆盖根证书文件
|
#自动覆盖根证书文件
|
||||||
[ -s "$CRASHDIR"/tools/ca-certificates.crt ] && cp -f "$CRASHDIR"/tools/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
[ -s "$CRASHDIR"/tools/ca-certificates.crt ] && cp -f "$CRASHDIR"/tools/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||||
#启动服务
|
#启动服务
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ PIDFILE="/tmp/ShellCrash/$1.pid"
|
|||||||
|
|
||||||
if [ -f "$PIDFILE" ]; then
|
if [ -f "$PIDFILE" ]; then
|
||||||
PID="$(cat "$PIDFILE")"
|
PID="$(cat "$PIDFILE")"
|
||||||
if [ -n "$PID" ] && kill -0 "$PID" 2>/dev/null; then
|
if [ -n "$PID" ] && [ -d "/proc/$PID" ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user