Browse Source

initialize spk

rustdesk 4 years ago
parent
commit
fd09533e2b

+ 19 - 0
spk/INFO

@@ -0,0 +1,19 @@
1
+package="RustDesk Server"
2
+version="1.1.3"
3
+description="RustDesk是一款可以完全由用户定义的远程桌面软件。您可以使用RustDesk服务器自建中继服务器,先尝试打洞加密直连,不行再由服务器转发。此服务需要三个端口,NAT测试端口:21115(tcp),ID/注册端口:21116(tcp/udp) ,中继端口:21117(tcp)。"
4
+displayname="RustDesk服务器"
5
+maintainer="CarrieZ Studio"
6
+maintainer_url="https://rustdesk.com/zh/"
7
+distributor="RustDesk & 裙下孤魂"
8
+support_url="https://rustdesk.com/contact/"
9
+arch="apollolake avoton braswell broadwell broadwellnk bromolow cedarview denverton dockerx64 geminilake grantley kvmx64 purley v1000 x86 x86_64"
10
+os_min_ver="6.1"
11
+reloadui="yes"
12
+startable="yes"
13
+thirdparty="yes"
14
+install_reboot="no"
15
+install_dep_packages=""
16
+install_conflict_packages=""
17
+checksum="b66b5f9f889229092ed76e42b23878e4"
18
+extractsize=""
19
+checkport="no"

BIN
spk/PACKAGE_ICON.PNG


BIN
spk/PACKAGE_ICON_256.PNG


+ 34 - 0
spk/WIZARD_UIFILES/install_uifile

@@ -0,0 +1,34 @@
1
+[{
2
+    "step_title": "Install Settings",
3
+    "items": [{
4
+        "type": "textfield",
5
+        "desc": "RustDesk中继服务器端口",
6
+        "subitems": [{
7
+            "key": "hbbr_port",
8
+            "desc": "TCP",
9
+            "defaultValue": "21117",
10
+            "validator": {
11
+                "allowBlank": false,
12
+                "regex": {
13
+                    "expr": "/^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/",
14
+                    "errorText": "端口号必须为数字"
15
+                }
16
+            }
17
+        }]
18
+    }, {
19
+        "type": "textfield",
20
+        "desc": "RustDesk ID/注册服务器端口",
21
+        "subitems": [{
22
+            "key": "hbbs_port",
23
+            "desc": "ID/注册服务端口TCP/UDP",
24
+            "defaultValue": "21116",
25
+            "validator": {
26
+                "allowBlank": false,
27
+                "regex": {
28
+                    "expr": "/^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/",
29
+                    "errorText": "端口号必须为数字"
30
+                }
31
+            }
32
+        }]
33
+    }
34
+        }]

+ 30 - 0
spk/pubkey

@@ -0,0 +1,30 @@
1
+-----BEGIN PGP PUBLIC KEY BLOCK-----
2
+Version: GnuPG v1.4.11 (GNU/Linux)
3
+
4
+mQENBFPXh7wBCAClaiu5REwBu9ow0OYam+wWp3PTHIcuy1KAuOJaOoGAPPpJ+df1
5
+xvVpql5bMlUWLE6OiWHPdSojrw0T6yx47R5F6rPVyT19+/uKrWpVoLQHu4WZRAIF
6
+yhd1ptbClvdJGu3h1YGXsGNCMB4L1Ytbzg3mIatsqJwwY6H0fc88/HbSwnF5xyM2
7
+C6r6AzHwVNl0RPYzOrMMaizaYIHEIC0xvOvL94paqPZPfMZ8S2PsiHD8rhpZ46+k
8
+pbrpCNgeas7i6ix1I8mT/pGmjhqcPhsT0OK8gqKWfa8ZVltX5fkL6g3M+g6BKsYT
9
+Qr+II8wQGX0ZHfFUjqFcPBPekiksixkwbHgPABEBAAG0GVN5bm9sb2d5IEluYy4g
10
+KFRpbWVzdGFtcCmJATgEEwECACIFAlPXh7wCGwMGCwkIBwMCBhUIAgkKCwQWAgMB
11
+Ah4BAheAAAoJEDjoaiswnoiw2U0H/jIsC7fkF6B1TSYPntmZ/DTAIDPvH5GX3a5O
12
+XugCbBpFlLYgbrDf9ZD6iu8lYWwdIYlGiNnIpJ+aw/F6hClc1/sfwBIjW9AtWLWI
13
+GPOsrqlcEETcAooCnAV8wsQ6cIBPxQJmZRoQYI71IrY/mXsrFh1MNc3nMoiMC/Hx
14
+dKcWFUSVeHE3goWkZ8k68c466blj8nQZ5IKA64qt0s3WkwG2k3bheh5KxFwX4Uyq
15
+QWPAHhTzepJvJi5DMMla+JN6+PtDsQXyqWmJy/W0Aes7BvcY1ilnKRQj7P0BvVk5
16
+Lv2eBz4tSBb7WvwU+VRHufLSqhJrEnS8RcRPci2+jNXqq3trnwu5AQ0EU9eHvAEI
17
+ALugjXKwQqSSecmsOaDtT/3jGIr/xtGX/cNfmhOR7cqrf30E2F+3POjpiQWAApG4
18
+twx5tgkv1mOAxpuMYMVb4fbv+mkWYPZvro9+iEqjAUb0ttKdZTUUpb37JNE/3eow
19
+ByRiNq92DIpERzzUsqOPVstxnekp03wTCyJzgW+oBaevbujDdGCuOXFXhSKppCBl
20
+BLVjffJ1QOnCYIAfCQoe+z7F+AbDTrLIdCg5nc8xmgc4C3JYQtk6MzCakbh4TOOU
21
+kMG8Zcm5QEWGB1AXzlrEExTxsZEdxyBR7LtR3r15stCEh9EhixZRYR2jO8xx9A4P
22
+RlCPKYAy7yHl4X6NoYyJ02UAEQEAAYkBHwQYAQIACQUCU9eHvAIbDAAKCRA46Gor
23
+MJ6IsCDHCACI6bacSQFMIf9zUTs6TIUMQFgs52GD5CzEJ4yXmTcldAs8gEnv01zg
24
+sKqSu/MxB8Dox51gesaUrHmX0EBdw37jZSFCE940ErzPEI2zhLzdOwimqXs5+a9H
25
+L7xl9wqQI1awubHnYQTb9rnzcphEhdepN+5Qv/K3mguuLffp1GI8Pa6KdKzvttLi
26
+qAHRMqq1lPAqr8EmwacUYNQ7DTjz5fEw7+SBkLjB+CJFj4gjOTn8s4DYmWrQjUoS
27
+bwXph6pkrn84if8gzY7xJX3+4UGC/U/8O2my2H/XdcmkPkl5shyiDkhb+wDdNqXS
28
+d/I7NIpmY3Pgu1sKNwr1dXBEHGez8ooi
29
+=n+fM
30
+-----END PGP PUBLIC KEY BLOCK-----

+ 23 - 0
spk/scripts/RustDesk_Server.sc

@@ -0,0 +1,23 @@
1
+[RustDesk_Server_HBBR]
2
+title="RustDesk Server (HBBR_TCP)"
3
+desc="RustDesk Server"
4
+port_forward="yes"
5
+dst.ports="21117/tcp"
6
+
7
+[RustDesk_Server_HBBS_TCP]
8
+title="RustDesk Server (HBBS_TCP)"
9
+desc="RustDesk Server"
10
+port_forward="yes"
11
+dst.ports="21116/tcp"
12
+
13
+[RustDesk_Server_HBBS_UDP]
14
+title="RustDesk Server (HBBS_UDP)"
15
+desc="RustDesk Server"
16
+port_forward="yes"
17
+dst.ports="21116/udp"
18
+
19
+[RustDesk_Server_NAT_TCP]
20
+title="RustDesk Server (NAT_TCP)"
21
+desc="RustDesk Server"
22
+port_forward="yes"
23
+dst.ports="21115/tcp"

+ 157 - 0
spk/scripts/installer

@@ -0,0 +1,157 @@
1
+#!/bin/sh
2
+
3
+PACKAGE_NAME="$SYNOPKG_PKGNAME"
4
+PACKAGE_BASE="/var/packages/${PACKAGE_NAME}/target"
5
+PACKAGE_SSS="/var/packages/${PACKAGE_NAME}/scripts/start-stop-status"
6
+
7
+SERVICETOOL="/usr/syno/bin/servicetool"
8
+GETKEYVALUE="/usr/syno/bin/synogetkeyvalue"
9
+SETKEYVALUE="/usr/syno/bin/synosetkeyvalue"
10
+FWFILENAME="RustDesk_Server.sc"
11
+
12
+[ "${hbbr_port}" == "" ]  && hbbr_port="21117"
13
+[ "${hbbs_port}" == "" ]  && hbbs_port="21116"
14
+nat_port=`expr ${hbbs_port} - 1`
15
+
16
+preinst() {
17
+    exit 0
18
+}
19
+
20
+postinst() {
21
+    if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ]; then
22
+        # 导入另一个RustDesk服务器数据
23
+        import_db="false"
24
+        import_all="false"
25
+        if [ "${rds_old_import_all}" == "true" ]; then
26
+            rds_old_import_db="true"
27
+            import_all="true"
28
+        elif [ "${rds_import_all}" == "true" ]; then
29
+            rds_import_db="true"
30
+            import_all="true"
31
+        fi
32
+        if [ "${rds_old_import_db}" == "true" ]; then
33
+            import_db="true"
34
+            PACKAGE_IMPORT_DIR="/var/packages/RustDesk_Server"
35
+        elif [ "${rds_import_db}" == "true" ]; then
36
+            import_db="true"
37
+            PACKAGE_IMPORT_DIR="/var/packages/RustDesk Server"
38
+        fi
39
+        if [ "${import_db}" == "true" ]; then
40
+            [ -x "${PACKAGE_IMPORT_DIR}/scripts/start-stop-status" ] \
41
+                && SYNOPKG_PKGNAME="RustDesk Server" "${PACKAGE_IMPORT_DIR}/scripts/start-stop-status" stop 2>&1
42
+            [ -f "${PACKAGE_IMPORT_DIR}/enabled" ] && rm -f "${PACKAGE_IMPORT_DIR}/enabled"
43
+            [ -d "${PACKAGE_IMPORT_DIR}/target/hbbs.db" ] && cp -prf "${PACKAGE_IMPORT_DIR}/target/hbbs.db" "${PACKAGE_BASE}"
44
+        fi
45
+        if [ "${import_all}" == "true" ]; then
46
+            [ -d "${PACKAGE_IMPORT_DIR}/target/logs" ] && cp -prf "${PACKAGE_IMPORT_DIR}/target/logs" "${PACKAGE_BASE}"
47
+        fi
48
+
49
+        # 添加应用配置
50
+        sed -i "s/中继端口:21117/中继端口:${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
51
+        sed -i "s/ID\/注册端口:21116/ID\/注册端口:${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
52
+        sed -i "s/NAT测试端口:21115/NAT测试端口:${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
53
+        sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
54
+        sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
55
+        sed -i "s/21115/${nat_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
56
+        sed -i "s/port=[^ ]*/port=${hbbr_port}/g" "${PACKAGE_BASE}/config/hbbr.conf"
57
+        sed -i "s/port=[^ ]*/port=${hbbs_port}/g" "${PACKAGE_BASE}/config/hbbs.conf"
58
+
59
+        # 添加防火墙配置
60
+        cat "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >"/tmp/${FWFILENAME}"
61
+        ${SERVICETOOL} --install-configure-file --package "/tmp/${FWFILENAME}" >/dev/null
62
+        rm -f "/tmp/${FWFILENAME}"
63
+
64
+        # 设置文件权限
65
+        chmod -R 755 "${PACKAGE_BASE}"/*
66
+		chmod -R 755 "/var/packages/${PACKAGE_NAME}/scripts"/*
67
+		chmod -R 755 "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES"/*
68
+        chmod 644 "/var/packages/${PACKAGE_NAME}/INFO"
69
+    fi
70
+
71
+    exit 0
72
+}
73
+
74
+preuninst() {
75
+    # 停用套件
76
+    "${PACKAGE_SSS}" stop
77
+
78
+    # 删除防火墙配置
79
+    if [ "${SYNOPKG_PKG_STATUS}" == "UNINSTALL" ]; then
80
+        ${SERVICETOOL} --remove-configure-file --package "${FWFILENAME}" >/dev/null
81
+    fi
82
+
83
+    exit 0
84
+}
85
+
86
+postuninst() {
87
+    # 删除不必要的目录...
88
+    if [ -d "/usr/syno/etc/packages/${PACKAGE_NAME}" ]; then
89
+        rm -rf "/usr/syno/etc/packages/${PACKAGE_NAME}"
90
+    fi
91
+
92
+    exit 0
93
+}
94
+
95
+preupgrade() {
96
+    # 停用套件
97
+    "${PACKAGE_SSS}" stop
98
+
99
+#  Not working yet...
100
+#    # 检索旧设置...
101
+#    hbbr_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbr.conf" port`
102
+#    hbbs_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" port`
103
+#    sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES/upgrade_uifile"
104
+#    sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES/upgrade_uifile"
105
+##  Not working yet...
106
+
107
+    # 备份数据文件...
108
+    if [ -d "${SYNOPKG_PKGDEST}" ]; then
109
+        DIRS4BACKUP="data logs hbbs.db config"
110
+        for DIR in $DIRS4BACKUP; do
111
+            if [ -d "${SYNOPKG_PKGDEST}/${DIR}" ]; then
112
+                mkdir -p "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
113
+                mv "${SYNOPKG_PKGDEST}/${DIR}"/* "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
114
+                rmdir "${SYNOPKG_PKGDEST}/${DIR}"
115
+            elif [ -f "${SYNOPKG_PKGDEST}/${DIR}" ]; then
116
+                mv "${SYNOPKG_PKGDEST}/${DIR}" "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"
117
+            fi
118
+        done
119
+    fi
120
+
121
+    exit 0
122
+}
123
+
124
+postupgrade() {
125
+    # 恢复数据文件...
126
+    if [ -d "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade" ]; then
127
+        for DIR in `ls "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"`
128
+        do
129
+            if [ -d "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" ]; then
130
+                [ ! -d "${SYNOPKG_PKGDEST}/${DIR}" ] && mkdir "${SYNOPKG_PKGDEST}/${DIR}"
131
+                mv "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"/* "${SYNOPKG_PKGDEST}/${DIR}"
132
+                rmdir "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
133
+            elif [ -f "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" ]; then
134
+                mv "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" "${SYNOPKG_PKGDEST}"
135
+            fi
136
+        done
137
+        rmdir "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"
138
+    fi
139
+
140
+    # 恢复设置...
141
+    hbbr_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbr.conf" port` >>/tmp/wakko.txt
142
+    hbbs_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" port` >>/tmp/wakko.txt
143
+    nat_port=`expr ${hbbs_port} - 1`
144
+    sed -i "s/中继端口:21117/中继端口:${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
145
+    sed -i "s/ID\/注册端口:21116/ID\/注册端口:${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
146
+    sed -i "s/NAT测试端口:21115/NAT测试端口:${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
147
+    sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
148
+    sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
149
+    sed -i "s/21115/${nat_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
150
+
151
+    # 设置文件权限
152
+    chmod -R 755 "/var/packages/${PACKAGE_NAME}/scripts"/*
153
+    chmod -R 755 "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES"/*
154
+    chmod 644 "/var/packages/${PACKAGE_NAME}/INFO"
155
+
156
+    exit 0
157
+}

+ 3 - 0
spk/scripts/postinst

@@ -0,0 +1,3 @@
1
+#!/bin/sh
2
+. "`dirname \"$0\"`/installer"
3
+`basename "$0"` >$SYNOPKG_TEMP_LOGFILE

+ 3 - 0
spk/scripts/postuninst

@@ -0,0 +1,3 @@
1
+#!/bin/sh
2
+. "`dirname \"$0\"`/installer"
3
+`basename "$0"` >$SYNOPKG_TEMP_LOGFILE

+ 3 - 0
spk/scripts/postupgrade

@@ -0,0 +1,3 @@
1
+#!/bin/sh
2
+. "`dirname \"$0\"`/installer"
3
+`basename "$0"` >$SYNOPKG_TEMP_LOGFILE

+ 3 - 0
spk/scripts/preinst

@@ -0,0 +1,3 @@
1
+#!/bin/sh
2
+. "`dirname \"$0\"`/installer"
3
+`basename "$0"` >$SYNOPKG_TEMP_LOGFILE

+ 3 - 0
spk/scripts/preuninst

@@ -0,0 +1,3 @@
1
+#!/bin/sh
2
+. "`dirname \"$0\"`/installer"
3
+`basename "$0"` >$SYNOPKG_TEMP_LOGFILE

+ 3 - 0
spk/scripts/preupgrade

@@ -0,0 +1,3 @@
1
+#!/bin/sh
2
+. "`dirname \"$0\"`/installer"
3
+`basename "$0"` >$SYNOPKG_TEMP_LOGFILE

+ 156 - 0
spk/scripts/start-stop-status

@@ -0,0 +1,156 @@
1
+#!/bin/sh
2
+
3
+
4
+sError="ERROR: "
5
+[ ! -z "$SYNOPKG_PKGNAME" ] && sError="<br />${sError}"
6
+TIMEOUT=120
7
+PACKAGE_NAME="RustDesk Server"
8
+PACKAGE_BASE="/var/packages/${PACKAGE_NAME}/target"
9
+HBBR_BIN="${PACKAGE_BASE}/bin/hbbr"
10
+HBBR_PORT=`synogetkeyvalue "${PACKAGE_BASE}/config/hbbr.conf" port`
11
+HBBR_LOG="${PACKAGE_BASE}/logs/hbbr.log"
12
+HBBS_BIN="${PACKAGE_BASE}/bin/hbbs"
13
+HBBS_PORT=`synogetkeyvalue "${PACKAGE_BASE}/config/hbbs.conf" port`
14
+HBBS_LOG="${PACKAGE_BASE}/logs/hbbs.log"
15
+PACKAGE_ENABLED="/var/packages/${PACKAGE_NAME}/enabled"
16
+PS_CMD="/bin/ps -w"
17
+DSM_MAJORVERSION=`synogetkeyvalue /etc.defaults/VERSION majorversion`
18
+if [[ $DSM_MAJORVERSION -gt 5 ]]; then
19
+    PS_CMD="$PS_CMD -x"
20
+fi
21
+
22
+CheckIfDaemonAlive() {
23
+    local PID="$1"
24
+    PROCESS_ALIVE="0"
25
+    [ -z "$PID" ] && return 1
26
+
27
+    kill -0 "$PID"
28
+    [ "0" == "$?" ] && PROCESS_ALIVE="1"
29
+}
30
+
31
+running_hbbr() {
32
+    local PID=$(${PS_CMD} | sed -e 's/^[ \t]*//' | grep -v grep | grep hbbr | grep "${PACKAGE_NAME}" | head -n1 | cut -f1 -d' ')
33
+    CheckIfDaemonAlive $PID
34
+    [ "0" == "$PROCESS_ALIVE" ] && return 1
35
+    return 0
36
+}
37
+
38
+running_hbbs() {
39
+    local PID=$(${PS_CMD} | sed -e 's/^[ \t]*//' | grep -v grep | grep hbbs | grep "${PACKAGE_NAME}" | head -n1 | cut -f1 -d' ')
40
+    CheckIfDaemonAlive $PID
41
+    [ "0" == "$PROCESS_ALIVE" ] && return 1
42
+    return 0
43
+}
44
+
45
+start() {  
46
+    [ "$SYNOPKG_TEMP_LOGFILE" == "" ] && SYNOPKG_TEMP_LOGFILE="/var/log/rustdeskserver.start.log"
47
+    LANG=C cd "$PACKAGE_BASE" && (nohup "$HBBR_BIN" -p $HBBR_PORT > "$HBBR_LOG" 2>&1 &) && (nohup "$HBBS_BIN" -r 127.0.0.1 -p $HBBS_PORT > "$HBBS_LOG" 2>&1 &)
48
+
49
+
50
+    i=0
51
+    while true; do
52
+        if ! running_hbbr || ! running_hbbs ; then
53
+#           echo "WAIT: ${i}s of ${TIMEOUT}s"
54
+            sleep 5s
55
+            i=$((i+5))
56
+        else
57
+            break
58
+        fi
59
+        [ $i -ge $TIMEOUT ] && break
60
+    done
61
+
62
+    # 检查hbbr进程状态
63
+    if ! running_hbbr ; then
64
+        echo -e "${sError}hbbr进程已死" | tee -a $SYNOPKG_TEMP_LOGFILE
65
+        stop
66
+        return 1
67
+    fi
68
+
69
+    # 检查hbbs进程状态
70
+    if ! running_hbbs ; then
71
+        echo -e "${sError}hbbs进程已死" | tee -a $SYNOPKG_TEMP_LOGFILE
72
+        stop
73
+        return 1
74
+    fi
75
+
76
+    return 0
77
+}
78
+
79
+stop() {
80
+    [ "$SYNOPKG_TEMP_LOGFILE" == "" ] && SYNOPKG_TEMP_LOGFILE="/var/log/rustdeskserver.stop.log"
81
+    # 检查hbbr进程状态
82
+    if running_hbbr ; then
83
+        local PID=$(${PS_CMD} | sed -e 's/^[ \t]*//' | grep -v grep | grep hbbr | grep "${PACKAGE_NAME}" | head -n1 | cut -f1 -d' ')
84
+        [ -z "$PID" ] && return 0
85
+        kill -15 $PID
86
+        sleep 5s
87
+
88
+        # 检查hbbr进程状态
89
+        if running_hbbr ; then
90
+            kill -9 $PID
91
+            sleep 5s
92
+            if running_hbbr ; then
93
+                echo "${sError}无法关闭hbbr进程 (pid=$PID)!" | tee -a $SYNOPKG_TEMP_LOGFILE
94
+                return 1
95
+            fi
96
+        fi
97
+    fi
98
+
99
+    # 检查hbbs进程状态
100
+    if running_hbbs ; then
101
+        local PID=$(${PS_CMD} | sed -e 's/^[ \t]*//' | grep -v grep | grep hbbs | grep "${PACKAGE_NAME}" | head -n1 | cut -f1 -d' ')
102
+        [ -z "$PID" ] && return 0
103
+        kill -15 $PID
104
+        sleep 5s
105
+
106
+        # 检查hbbs进程状态
107
+        if running_hbbs ; then
108
+            kill -9 $PID
109
+            sleep 5s
110
+            if running_hbbs ; then
111
+                echo "${sError}无法关闭hbbs进程 (pid=$PID)!" | tee -a $SYNOPKG_TEMP_LOGFILE
112
+                return 1
113
+            fi
114
+        fi
115
+    fi
116
+
117
+    return 0
118
+}
119
+
120
+case $1 in
121
+    start)
122
+        # 启动服务器
123
+        start
124
+        exit $?
125
+    ;;
126
+    stop)
127
+        # 关闭服务器
128
+        stop
129
+        exit $?
130
+    ;;
131
+    status)
132
+        # 检查套件开关
133
+        if [ ! -f "${PACKAGE_ENABLED}" ]; then
134
+            echo "${sError}套件没有开启" | tee -a $SYNOPKG_TEMP_LOGFILE
135
+            exit 0
136
+        fi
137
+
138
+        # 检查hbbr进程状态
139
+        if ! running_hbbr ; then
140
+            echo "${sError}hbbr进程已死" | tee -a $SYNOPKG_TEMP_LOGFILE
141
+            exit 1
142
+        fi
143
+
144
+        # 检查hbbs进程状态
145
+        if ! running_hbbs ; then
146
+            echo "${sError}hbbs进程已死" | tee -a $SYNOPKG_TEMP_LOGFILE
147
+            exit 1
148
+        fi
149
+
150
+        exit 0
151
+    ;;
152
+    log)
153
+        echo "$PACKAGE_BASE/logs/server.log"
154
+        exit 0
155
+    ;;
156
+esac

+ 0 - 0
spk/syno_signature.asc