修改群晖套件的启动、停止命令

环境:DSM6.2
问题:群晖套件起不来,想修改套件启动命令
解决办法:修改套件配置文件

背景:1.矿神套件zerotier,不能自动添加路由,有时候zerotier只能跟自己通讯
2.矿神cloudflared套件,默认使用qui2协议启动,且不能指定ipv6协议

解决过程:修改启动配置文件


1.确认群晖套件配置文件地点:

群晖套件的目录主要有2个地方我们以cloudflare为例:

/var/packages/cloudflared
/volume3/@appstore/cloudflared/

在这里插入图片描述

2.找到套件的启动文件:

套件可以理解为服务,他一般保存在下列地址

/var/packages/套件名字/scripts/start-stop-status
比如
/var/packages/cloudflared/scripts/start-stop-status

3.修改套件启动命令

在cloudflare套件的启动命令中,查找start_daemon 开头的配置文件

start_daemon ()
{
    i=0
    if [ -z "${SVC_QUIET}" ]; then
        if [ -z "${SVC_KEEP_LOG}" ]; then
            date > ${LOG_FILE}
        else
            date >> ${LOG_FILE}
        fi
    fi
    call_func "service_prestart"
    printf "%s" "$SERVICE_COMMAND" | while read -r service || [ -n "$service" ]
    do
        i=$((i + 1))
        if [ -z "${SVC_QUIET}" ]; then
            echo "Starting ${DNAME} command ${service}" >> ${LOG_FILE}
        fi
        if [ -n "${service}" ]; then
            if [ -n "${SVC_NO_REDIRECT}" ]; then
                OUT="/dev/null"

进一步分析发现启动命令是在另一个配置文件的变量中,继续修改:

vi /var/packages/cloudflared/scripts/service-setup

发现SERVICE_COMMAND为命令直接修改即可

if [ -e $TOKEN_FILE ]; then
    CLOUDFLARED_TOKEN="$(cat $TOKEN_FILE)"
fi

SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/cloudflared --no-autoupdate tunnel run --token ${CLOUDFLARED_TOKEN}"
SVC_BACKGROUND=y
SVC_WRITE_PID=y

这里我修改为IPV6协议:

cloudflared  --edge-ip-version 6 --no-autoupdate tunnel

3.1 zerotier就更简单了

 vi /var/packages/zerotier/scripts/start-stop-status

直接加一个脚本去判断路由有没有起来

start_daemon()
{
    ${SYNOPKG_PKGDEST}/bin/zerotier-one $PKGVAR -d
    /volume3/docker/job/zerotier.sh
    echo $(pidof zerotier-one) > ${ZTO_PID_FILE}
    log "Started ZeroTier ($(cat $ZTO_PID_FILE))"
}

附上路由配置代码

EXIST=`ip route show 10.244.0.0/16 | wc -l`
if [ $EXIST -eq 0 ]
then
route add -net 10.244.0.0/16 dev ztyqb2flah
fi```


猜你喜欢

转载自blog.csdn.net/wangrui1573/article/details/129859078
今日推荐