source: net-p2p/mldonkey/files/mldonkey.initd @ 5ddb244

Revision 5ddb244, 3.4 KB checked in by geos_one <geos_one@…>, 11 years ago (diff)

add updated mldonkey

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@2278 6952d904-891a-0410-993b-d76249ca496b

  • Property mode set to 100644
Line 
1#!/sbin/runscript
2
3opts="reload slow fast info"
4
5MLDONKEY_BINARY=${MLDONKEY_BINARY:-/usr/bin/mlnet}
6MLDONKEY_TIMEOUT=${TIMEOUT:-10}
7
8depend() {
9        need localmount net
10        ${USE_LOGGER} && use logger
11}
12
13start() {
14        if [ -z "${MLDONKEY_DIR}" ]; then
15                ewarn "mldonkey's start script has been changed. You should remove"
16                ewarn "BASEDIR and SUBDIR from /etc/conf.d/mldonkey and set MLDONKEY_DIR"
17                ewarn "to the correct value (you probably want"
18                ewarn "MLDONKEY_DIR=${BASEDIR}/${SUBDIR})"
19                MLDONKEY_DIR="${BASEDIR}/${SUBDIR}"
20                einfo "Using ${MLDONKEY_DIR} as working directory"
21        fi
22
23        if [ ! -d "${MLDONKEY_DIR}" ]; then
24                ebegin "Directory ${MLDONKEY_DIR} not existing, trying to create..."
25                mkdir -p "${MLDONKEY_DIR}" && chown ${USER}:users "${MLDONKEY_DIR}"
26                eend $? || return 1
27        fi
28
29        ebegin "Starting ${SVCNAME}"
30        cd "${MLDONKEY_DIR}"
31        export MLDONKEY_DIR
32        start-stop-daemon --start --chuid "${USER}" --nice "${NICE}" \
33                --exec "${MLDONKEY_BINARY}" --pidfile /var/run/"${SVCNAME}".pid \
34                --background --make-pidfile
35        eend $?
36}
37
38setup_uri() {
39        BASE="http://"
40        if [ -n "${USERNAME}" -a -n "${PASSWORD}" ]; then
41                BASE="${BASE}${USERNAME}:${PASSWORD}@"
42        fi
43        BASE="${BASE}${SERVER}:${PORT}"
44}
45
46stop() {
47        ebegin "Stopping ${SVCNAME} -- please wait"
48
49        setup_uri
50        wget --spider --timeout="${MLDONKEY_TIMEOUT}" "${BASE}"/submit?q=close_fds -q
51        wget --spider --timeout="${MLDONKEY_TIMEOUT}" "${BASE}"/submit?q=save -q
52        wget --spider --timeout="${MLDONKEY_TIMEOUT}" "${BASE}"/submit?q=kill -q
53
54        # give it a chance to die:
55        local timeout=${MLDONKEY_TIMEOUT}
56        while [ $timeout -gt 0 ]; do
57                if ! start-stop-daemon --test --quiet --stop \
58                        --exec "${MLDONKEY_BINARY}" \
59                        --pidfile /var/run/"${SVCNAME}".pid ; then
60                        eend 0
61                        return 0
62                fi
63                sleep 1
64                timeout=$((${timeout} - 1))
65        done
66
67        eend 1 "Failed to cleanly stop ${SVCNAME}"
68        ebegin "Forcing ${SVCNAME} to stop"
69        start-stop-daemon --stop --exec "${MLDONKEY_BINARY}" \
70                --pidfile /var/run/"${SVCNAME}".pid
71        eend $?
72}
73
74# This doesn't work for baselayout-2
75restart() {
76        svc_stop
77        sleep 5
78        svc_start
79}
80
81reload() {
82        if ! service_started "${SVCNAME}"; then
83                eerror "${SVCNAME} is not started"
84                return 1
85        fi
86
87        ebegin "Reloading ${SVCNAME}"
88        start-stop-daemon --stop --signal HUP --oknodo \
89                --exec "${MLDONKEY_BINARY}" --pidfile /var/run/"${SVCNAME}".pid
90        eend $?
91}
92
93slow() {
94        if ! service_started "${SVCNAME}"; then
95                eerror "${SVCNAME} is not started"
96                return 1
97        fi
98
99        ebegin "Reducing bandwidth to ${LOW_DOWN}k/${LOW_UP}k"
100        setup_uri
101        wget --spider --timeout="${MLDONKEY_TIMEOUT}" \
102                "${BASE}/submit?q=set+max_hard_download_rate+${LOW_DOWN}" -q
103        wget --spider --timeout=${MLDONKEY_TIMEOUT} \
104                "${BASE}/submit?q=set+max_hard_upload_rate+${LOW_UP}" -q
105        eend $?
106}
107
108fast() {
109        if ! service_started "${SVCNAME}"; then
110                eerror "${SVCNAME} is not started"
111                return 1
112        fi
113
114        ebegin "Increasing bandwidth to ${HIGH_DOWN}k/${HIGH_UP}k"
115
116        setup_uri
117        wget --spider --timeout="${MLDONKEY_TIMEOUT}" \
118                "${BASE}/submit?q=set+max_hard_upload_rate+${HIGH_UP}" -q
119        wget --spider --timeout="${MLDONKEY_TIMEOUT}" \
120                "${BASE}/submit?q=set+max_hard_download_rate+${HIGH_DOWN}" -q
121        eend $?
122}
123
124
125info() {
126        if ! service_started "${SVCNAME}"; then
127                eerror "${SVCNAME} is not started"
128                return 1
129        fi
130
131        setup_uri
132        local result=$(wget --timeout="${MLDONKEY_TIMEOUT}" \
133                -O - "${BASE}"/submit?q=vo 2>/dev/null | \
134                grep -C1 max_hard_upload | \
135                grep value=\" | cut -d\" -f2)
136        if [ "${result}" = "${LOW_UP}" ]; then
137                einfo "${SVCNAME} runs slow"
138        else
139                einfo "${SVCNAME} runs fast"
140        fi
141}
Note: See TracBrowser for help on using the repository browser.