HAProxy не перезагружается при перезагрузке сервера - «Permission denied» - PullRequest
0 голосов
/ 26 мая 2020

Когда мой сервер прошел через запланированную перезагрузку, все перезапустилось правильно, кроме haproxy. У нас есть сценарий start. sh, который просматривает каталог в / home / user1 / apps и проверяет, есть ли у каждого сценарий start. sh. Если это так, сценарий запускает этот сценарий запуска. После l oop запускается haproxy:

#!/bin/bash
# reboot script v1.0

for appName in ~/apps/* ; do
    if [ -e $appName/bin/start.sh ] && [ $appName != haproxy ];
    then
        cd $appName/bin
        echo "`date -u` - Stopping current instance of $appName" 2>&1 >> $HOME/apps/logs/start.log
        ./stop.sh $appName
        echo "`date -u` - Starting $appName" 2>&1 >> $HOME/apps/logs/start.log
        ./start.sh $1
        echo
    else
        echo "`date -u` - No start script found for $appName" 2>&1 >> $HOME/apps/logs/start.log
    fi
done

sleep 5

cd $HOME/apps/haproxy/bin
./start.sh

Это отлично работает, когда я запускаю сценарий от имени пользователя. Однако при последнем перезапуске сервера по расписанию haproxy не запустился. Единственное сообщение, которое он вернул, было Could not open configuration file /home/user/apps/haproxy/config/haproxy.cfg : Permission denied.

Когда сервер перезагружается, он запускает сценарий start.service:

[Unit]
Description=start up of services
After=check_vas.service

[Service]
Type=forking
ExecStart=/etc/init.d/start_stop.sh start
ExecStop=/etc/init.d/start_stop.sh stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

, который, в свою очередь, вызывает start_stop. sh:

#!/bin/bash
#

#chkconfig: 345 99 90
#description: This script helps to start/stop the automation config service while the server get reboot.
start() {
su - user1 -c "/home/user1/scripts/start.sh";
if [ $? == 0 ]
then
echo 'Services Started Successfully - ' `date +%Y_%m_%d_%M_%S` >> /home/user1/logs/service_start_log_${dd};
else
echo 'Failed to start services - ' `date +%Y_%m_%d_%M_%S` >> /home/user1/logs/service_start_log_${dd};
fi
}


exit $RETVAL

Как я уже сказал, это выполняется для каждой службы, кроме haproxy, которую я запускал последней. Я уже установил для файла конфигурации haproxycfg права доступа 777, и это не повлияло. При дальнейшем исследовании я обнаружил, что домашний каталог user1, / home / user1, имел разрешения для 700. Хотя я попробую, я не думаю, что могу изменить эти разрешения; это сервер компании, который мы используем. Таким образом, случалось ли это раньше с кем-нибудь? Если да, то что вы сделали, чтобы решить эту проблему.

Версия HAProxy - 1.5.18, а начальный файл выглядит просто так:

#!/usr/bin/env sh

nohup haproxy -db -f $HOME/apps/haproxy/config/haproxy.cfg >> nohup.out 2>&1 &
...