测试版本库,随便折腾。
陈炜
2021-01-26 d717ddd0d4e6e954f7d7f64b7797f28e8806152f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/bin/sh
### BEGIN INIT INFO
# Provides:          verysync
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: verysync services
# Description:       verysync services
### END INIT INFO
 
 
DESC=verysync
NAME=verysync
DAEMON=/usr/bin/verysync/verysync
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
PATH="/usr/bin/verysync:$PATH"
 
VSHOME="$HOME/.config/verysync"
USER="root"
DAEMON_OPTS="-gui-address :8886"
 
 
# Exit if the package is not installed
[ -x $DAEMON ] || exit 0
 
start_daemon ()
{
    if [[ -n "${VSHOME}" && -d "$VSHOME" ]]; then
        chown -R ${USER}:${USER} "${VSHOME}"
    fi
    #su - ${USER} -s "/bin/sh" -c "umask 000; PATH=${PATH} ${VERYSYNC} $VERYSYNC_OPTIONS"
    start-stop-daemon -b -o -c ${USER} -S -u ${USER} -k 002 -x env HOME="${VSHOME}" ${DAEMON} -- ${DAEMON_OPTS}
}
 
stop_daemon ()
{
    #kill `cat ${PID_FILE}`
    #wait_for_status 1 60 || kill -9 `cat ${PID_FILE}`
    #rm -f ${PID_FILE}
    start-stop-daemon -o -c ${USER} -K -u ${USER} -x ${DAEMON}
    wait_for_status 1 20 || start-stop-daemon -K -s 9 -q -x ${DAEMON}
}
 
daemon_status ()
{
    # if [ -f ${PID_FILE} ] && kill -0 `cat ${PID_FILE}` > /dev/null 2>&1; then
    #     return
    # fi
    # rm -f ${PID_FILE}
    # return 1
    start-stop-daemon -K -q -t -u ${USER} -x ${DAEMON}
    [ $? -eq 0 ] || return 1
}
 
# wait_for_status ()
# {
#     counter=$2
#     while [ ${counter} -gt 0 ]; do
#         daemon_status
#         [ $? -eq $1 ] && return
#         let counter=counter-1
#         sleep 1
#     done
#     return 1
# }
wait_for_status ()
{
    counter=$2
    while [ ${counter} -gt 0 ]; do
        daemon_status
        [ $? -eq $1 ] && return
        let counter=counter-1
        sleep 1
    done
    return 1
}
 
case $1 in
    start)
        if daemon_status; then
            echo ${NAME} is already running
        else
            echo Starting ${NAME} ...
            start_daemon
        fi
        ;;
    stop)
        if daemon_status; then
            echo Stopping ${NAME} ...
            stop_daemon
        else
            echo ${NAME} is not running
        fi
        ;;
    status)
        if daemon_status; then
            echo ${NAME} is running
            exit 0
        else
            echo ${NAME} is not running
            exit 1
        fi
        ;;
    log)
        exit 1
        ;;
    *)
        exit 1
        ;;
esac