Сравнение постов
Различия между постами
#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 |
