Сравнение постов
Различия между постами
#261767 (13.04.2022 10:36)
и
#274369 (17.05.2024 12:08).
1 | #!/bin/sh | |
2 | # | |
3 | # Dr.Web drweb-configd init script | |
4 | # | |
5 | # $Id: 7e07d2ad0adf8734d610911ac40c4c0ca81839ef $ | |
6 | # | |
7 | # chkconfig: 235 20 80 | |
8 | # description: drweb-configd is a Dr.Web Configuration Daemon | |
9 | # processname: drweb-configd | |
10 | # config: /etc/opt/drweb.com/drweb.ini | |
11 | # pidfile: /var/run/drweb-configd.pid | |
12 | ### BEGIN INIT INFO | |
13 | # Provides: drweb-configd | |
14 | # Required-Start: $local_fs $network | |
15 | # Required-Stop: $null | |
16 | # Should-Start: dkms_autoinstaller | |
17 | # Should-Stop: $null | |
18 | # Default-Start: 2 3 4 5 | |
19 | # Default-Stop: 0 1 6 | |
20 | # Description: drweb-configd is a Dr.Web Configuration Daemon | |
21 | ### END INIT INFO | |
22 | ||
23 | DAEMON=/opt/drweb.com/bin/drweb-configd | |
24 | PIDFILE=/var/run/drweb-configd.pid | |
25 | TIMEOUT=300 | |
26 | ||
27 | PATH=/usr/xpg4/bin:/bin:/usr/bin:/usr/ucb:/sbin:/usr/sbin:${PATH} | |
28 | ||
29 | EXIT_SUCCESS=0 | |
30 | EXIT_FAILURE_NOFILE=1 | |
31 | EXIT_FAILURE_RUNNING=2 | |
32 | EXIT_FAILURE_NOT_RUNNING=3 | |
33 | EXIT_FAILURE_TIMEOUT=4 | |
34 | EXIT_FAILURE_NOARGS=5 | |
35 | EXIT_FAILURE_NOT_ROOT=6 | |
36 | ||
37 | STATUS_NOPID=1 | |
38 | STATUS_ALIVE=0 | |
39 | STATUS_NOT_ALIVE=2 | |
40 | STATUS_WRONG_PID=3 | |
41 | ||
42 | if test -n "$1" -a ! "$1" = "status" ; then | |
43 | case "`id`" in | |
44 | uid=0*) | |
1 | У нас вы посчитаете все необходимое - от высококачественных продуктов до сверхтехнологичных предложений. Наш каталог разнообразен, дабы ублаготворить любые потребности. | |
2 | ||
3 | Отчего стоит посетить наш сайт? | |
4 | ||
5 | Большой выбор продукции: У нас вы обнаружите последние инновации и технологические достижения в наших товарах и услугах. | |
6 | ||
7 | Инновации и качество: Мы гордимся что, что предлагаем лишь только наилучшие решения. | |
8 | ||
9 | Специальные предложения: Посещение нашего сайта - это возможность первыми узнавать о особых предложениях, промоакциях и скидках. | |
10 | ||
11 | Экспертные рекомендации и статьи: Мы делимся с вами экспертными советами, заметками и рекомендациями по использованию наших товаров. | |
12 | ||
13 | Пользовательский навык: Наш веб-сайт разработан с учетом вашего комфорта. Интуитивно понятный интерфейс, быстрая навигация и простота в использовании обеспечивают милый онлайн-опыт. | |
14 | ||
15 | Что вас ждет на нашем сайте? | |
16 | ||
17 | Разделы https://alpha.prime-pc.md/good_info/45153 - https://alpha.prime-pc.md/good_info/45153 | |
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 | echo "$0 $1 must be executed with root privileges" | |
48 | exit $EXIT_FAILURE_NOT_ROOT | |
49 | ;; | |
50 | esac | |
51 | fi | |
52 | ||
53 | ulimit -n 16384 | |
54 | ||
55 | get_pid() { | |
56 | head -1 "$PIDFILE" 2>/dev/null | |
57 | } | |
58 | ||
59 | check_pid() { | |
60 | if test -r "$PIDFILE" ; then | |
61 | pid=`get_pid` | |
62 | if test -n "$pid" ; then | |
63 | if kill -0 "$pid" 2>/dev/null || ps -p "$pid" >/dev/null 2>&1 ; then | |
64 | return $STATUS_ALIVE | |
65 | else | |
66 | return $STATUS_NOT_ALIVE | |
67 | fi | |
68 | else | |
69 | return $STATUS_WRONG_PID | |
70 | fi | |
71 | else | |
72 | return $STATUS_NOPID | |
73 | fi | |
74 | } | |
75 | ||
76 | start_daemon() { | |
77 | if test $USE_SYSTEMCTL -eq 1; then | |
78 | exec /bin/systemctl --job-mode=ignore-dependencies start drweb-configd.service | |
79 | fi | |
80 | ||
81 | die_if_running | |
82 | if test ! -x "$DAEMON" ; then | |
83 | echo "Dr.Web drweb-configd is not installed" | |
84 | exit $EXIT_FAILURE_NOFILE | |
85 | fi | |
86 | ||
87 | add_execaps=0 | |
88 | ||
89 | if type execaps >/dev/null 2>&1 && cat /etc/astra_version | grep '^SE 1.5' >/dev/null 2>&1; then | |
90 | add_execaps=1 | |
91 | fi | |
92 | ||
93 | if test $add_execaps -eq 1; then | |
94 | execaps -c 0x100 -- "$DAEMON" -d -p "$PIDFILE" >/dev/null 2>&1 | |
95 | else | |
96 | "$DAEMON" -d -p "$PIDFILE" >/dev/null 2>&1 | |
97 | fi | |
98 | retval=$? | |
99 | if test $retval -ne 0; then | |
100 | die_if_cant_start | |
101 | fi | |
102 | return $retval | |
103 | } | |
104 | ||
105 | stop_daemon() { | |
106 | if test $USE_SYSTEMCTL -eq 1; then | |
107 | exec /bin/systemctl --job-mode=ignore-dependencies stop drweb-configd.service | |
108 | fi | |
109 | ||
110 | check_if_not_running | |
111 | pid=`get_pid` | |
112 | if test -n "$pid" ; then | |
113 | kill "$pid" | |
114 | fi | |
115 | seconds=0 | |
116 | retval=0 | |
117 | while check_pid ; do | |
118 | sleep 1 | |
119 | printf "." | |
120 | seconds=`expr $seconds + 1` | |
121 | if test "$seconds" -gt "$TIMEOUT" ; then | |
122 | retval=1 | |
123 | break | |
124 | fi | |
125 | done | |
126 | test "$seconds" -gt "0" && echo | |
127 | test $retval -eq 0 && rm -f "$PIDFILE" || die_if_timeout | |
128 | return $retval | |
129 | } | |
130 | ||
131 | reload_daemon() { | |
132 | if test $USE_SYSTEMCTL -eq 1; then | |
133 | exec /bin/systemctl --job-mode=ignore-dependencies reload drweb-configd.service | |
134 | fi | |
135 | ||
136 | check_if_not_running | |
137 | pid=`get_pid` | |
138 | if test -n "$pid" ; then | |
139 | kill -HUP "$pid" | |
140 | fi | |
141 | } | |
142 | ||
143 | restart_daemon() { | |
144 | if test $USE_SYSTEMCTL -eq 1; then | |
145 | exec /bin/systemctl --job-mode=ignore-dependencies restart drweb-configd.service | |
146 | fi | |
147 | ||
148 | if check_pid ; then | |
149 | stop_daemon || die_if_timeout | |
150 | fi | |
151 | start_daemon || die_if_cant_start | |
152 | } | |
153 | ||
154 | condrestart_daemon() { | |
155 | if test $USE_SYSTEMCTL -eq 1; then | |
156 | exec /bin/systemctl --job-mode=ignore-dependencies try-restart drweb-configd.service | |
157 | fi | |
158 | ||
159 | check_if_not_running | |
160 | stop_daemon || die_if_timeout | |
161 | start_daemon || die_if_cant_start | |
162 | } | |
163 | ||
164 | daemon_status() { | |
165 | if test $USE_SYSTEMCTL -eq 1; then | |
166 | exec /bin/systemctl status drweb-configd.service | |
167 | fi | |
168 | ||
169 | check_pid | |
170 | case "$?" in | |
171 | $STATUS_ALIVE) echo "Dr.Web drweb-configd is running" ;; | |
172 | $STATUS_NOPID) echo "Dr.Web drweb-configd is not running" ;; | |
173 | $STATUS_NOT_ALIVE|$STATUS_WRONG_PID) echo "Dr.Web drweb-configd is not running but $PIDFILE exists" ;; | |
174 | esac | |
175 | } | |
176 | ||
177 | die() { | |
178 | echo "$2" && exit $1 | |
179 | } | |
180 | ||
181 | die_if_running() { | |
182 | check_pid && die $EXIT_FAILURE_RUNNING "Dr.Web drweb-configd is already running" | |
183 | } | |
184 | ||
185 | check_if_not_running() { | |
186 | check_pid | |
187 | case "$?" in | |
188 | $STATUS_NOPID) echo "Dr.Web drweb-configd is not running" | |
189 | exit $EXIT_SUCCESS | |
190 | ;; | |
191 | $STATUS_NOT_ALIVE|$STATUS_WRONG_PID) die $EXIT_FAILURE_NOT_RUNNING \ | |
192 | "Dr.Web drweb-configd is not running but $PIDFILE exists" ;; | |
193 | esac | |
194 | } | |
195 | ||
196 | die_if_timeout() { | |
197 | die $EXIT_FAILURE_RUNNING "Dr.Web drweb-configd seems is still running" | |
198 | } | |
199 | ||
200 | die_if_cant_start() { | |
201 | die $EXIT_FAILURE_NOT_RUNNING "Failed to start Dr.Web drweb-configd" | |
202 | } | |
203 | ||
204 | USE_SYSTEMCTL=0 | |
205 | if test -x /bin/systemctl && cat /proc/1/comm 2>/dev/null | grep systemd 1>/dev/null 2>&1; then | |
206 | ||
207 | state=$(/bin/systemctl -p LoadState show drweb-configd.service 2>/dev/null) | |
208 | ||
209 | if test "$state" = "LoadState=not-found"; then | |
210 | USE_SYSTEMCTL=0 | |
211 | elif test "$state" = "LoadState=masked"; then | |
212 | die $EXIT_SUCCESS "Dr.Web drweb-configd is masked" | |
213 | else | |
214 | if test $PPID -ne 1 -a -z "${init:-}" -a -z "${SYSTEMCTL_REDIRECT:-}"; then | |
215 | USE_SYSTEMCTL=1 | |
216 | else | |
217 | export SYSTEMCTL_REDIRECT=1 | |
218 | fi | |
219 | fi | |
220 | fi | |
221 | case "$1" in | |
222 | stop) | |
223 | echo "Shutting down Dr.Web drweb-configd..." | |
224 | stop_daemon | |
225 | ;; | |
226 | reload) | |
227 | echo "Reloading Dr.Web drweb-configd..." | |
228 | reload_daemon | |
229 | ;; | |
230 | restart) | |
231 | echo "Restarting Dr.Web drweb-configd..." | |
232 | restart_daemon | |
233 | ;; | |
234 | condrestart) | |
235 | echo "Restarting Dr.Web drweb-configd..." | |
236 | condrestart_daemon | |
237 | ;; | |
238 | start) | |
239 | echo "Starting Dr.Web drweb-configd..." | |
240 | start_daemon | |
241 | ;; | |
242 | status) | |
243 | daemon_status | |
244 | ;; | |
245 | *) | |
246 | echo "Usage: $0 {start|stop|restart|condrestart|reload|status}" | |
247 | exit $EXIT_FAILURE_NOARGS | |
248 | ;; | |
249 | esac | |
250 | ||
251 | exit $EXIT_SUCCESS |