forked from Velocidex/velociraptor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvelociraptor.init
155 lines (120 loc) · 4.12 KB
/
velociraptor.init
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#! /bin/sh
### BEGIN INIT INFO
# Provides: velociraptor_client
# Required-Start: $network $named $local_fs $syslog
# Required-Stop: $network $named $local_fs $syslog
# Should-Start:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: velociraptor linux amd64
### END INIT INFO
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
DESC="velociraptor linux amd64"
NAME="velociraptor-client"
DAEMON="/usr/sbin/velociraptor"
DAEMON_ARGS="client"
PIDFILE="/var/run/${NAME}.pid"
SCRIPTNAME="/etc/init.d/${NAME}"
[ -x "${DAEMON}" ] || exit 0
. /lib/init/vars.sh
# Define various helper functions, needs lsb-base >= 3.2-14
. /lib/lsb/init-functions
# If upstart or systemd is here, exit and let it handle everything.
# The init_is_upstart requires lsb-base >= 4.1+Debian3, but we want to be able
# to run on older systems, so if it isn't present we do the check ourselves.
if type init_is_upstart >/dev/null 2>&1; then
log_daemon_msg "Upstart is present and should be used instead, doing nothing."
init_is_upstart && exit 0
elif [ -x /sbin/initctl ] && /sbin/initctl version | /bin/grep -q upstart; then
log_daemon_msg "Upstart is present and should be used instead, doing nothing."
exit 0
elif [ -x /bin/systemctl ]; then
log_daemon_msg "Systemd is present and should be used instead, doing nothing."
exit 0
fi
do_start() {
start-stop-daemon --start \
--quiet \
--test \
--make-pidfile \
--pidfile ${PIDFILE} \
--startas ${DAEMON} -- ${DAEMON_ARGS} || return 1
}
do_stop() {
start-stop-daemon --stop \
--quiet \
--oknodo \
--retry=TERM/30/KILL/5 \
--pidfile ${PIDFILE}
RETVAL="$?"
[ "${RETVAL}" = 2 ] && return 2
rm -f ${PIDFILE}
return "${RETVAL}"
}
do_reload() {
start-stop-daemon --stop \
--quiet \
--pidfile ${PIDFILE} \
--signal HUP
return 0
}
case "$1" in
start)
[ "${VERBOSE}" != no ] && log_daemon_msg "Starting ${DESC}" "${NAME}"
do_start
case "$?" in
0|1)
[ "${VERBOSE}" != no ] && log_end_msg 0
;;
2)
[ "${VERBOSE}" != no ] && log_end_msg 1
;;
esac
;;
stop)
[ "${VERBOSE}" != no ] && log_daemon_msg "Stopping ${DESC}" "${NAME}"
do_stop
case "$?" in
0|1)
[ "${VERBOSE}" != no ] && log_end_msg 0
;;
2)
[ "${VERBOSE}" != no ] && log_end_msg 1
;;
esac
;;
status)
status_of_proc -p "${PIDFILE}" "${DAEMON}" "${NAME}" && exit 0 || exit $?
;;
reload|force-reload)
log_daemon_msg "Reloading ${DESC}" "${NAME}"
do_reload
log_end_msg $?
;;
restart)
log_daemon_msg "Restarting ${DESC}" "${NAME}"
do_stop
case "$?" in
0|1)
sleep 1
do_start
case "$?" in
0)
log_end_msg 0
;;
1|2)
log_end_msg 1
;;
esac
;;
2)
log_end_msg 1
;;
esac
;;
*)
echo "Usage: ${SCRIPTNAME} {start|stop|status|restart|force-reload|reload}" >&2
exit 3
;;
esac
: