Перезапуск служб в Linux после перезагрузки сервера

Поэтому сегодня один из наших серверов приложений был перезапущен из-за какой-то проблемы, и после перезапуска мы обнаружили, что наши сервисы приложений не работают.

Я хочу создать один скрипт, который будет проверять указанные ниже службы после перезапуска сервера и запускать их автоматически, если найден остановлен:

Первый сервис с путем: /opt/bea/config/nm/nm-sdi-abc/beaNMctl.sh

2-й сервис TOMCAT - Путь: /opt/apache/tomcat/bin --- Имя сервиса startup.sh

Поймайте здесь, 1-й сервис может быть запущен с обычной учетной записью, которую я использую.

Но 2-я служба может быть перезапущена после входа в другую учетную запись службы на том же сервере и в сети. Как ниже:

[x201691 @ abc bin] $ su - apache

Пароль:

-bash-2.05b $ кд /

-bash-2.05b $ cd / opt / apache / tomcat / bin /

-bash-2.05b $./startup.sh

Может кто-нибудь помочь?

Также мы не являемся пользователями root.

2 ответа

Preferred approach when installing Tomcat in Linux is to make Tomcat as a service.

This will ensure your service is started after reboot

1. Create the service file with the following command:
    
touch /etc/systemd/system/tomcat.service

2. Assign the relevant rights to the file you created:

   chmod 664 /etc/systemd/system/tomcat.service

3. Paste the following content in the file while adapting it to your configuration:

       [Unit]

       Description=Application description/name

       After=syslog.target network.target

       [Service]

       Type=forking

       User=tomcat

        ExecStart=$CATALINA_HOME/bin/startup.sh

        ExecStop=/bin/kill -15 $MAINPID

        Install]

        WantedBy=multi-user.target


4. Reload the service daemon:
 systemctl daemon-reload

5. Start the service:
     systemctl start tomcat

6. To check status : 
    systemctl status tomcat

Вы можете написать скрипт оболочки:

echo YOUR_PASSWORD | sudo -S su 
cd /opt/apache/tomcat/bin/ 
./startup.sh

Сохраните это как файл где у вас есть доступ и добавьте следующую запись cron:

@reboot MYPATH/myscript.sh >>  MYPATH/script.log 2>&1

script.log будет содержать любые выходные данные или ошибки из вашего скрипта. Можете добавить date Команда сценария, чтобы помочь с информацией о том, когда он был запущен. Больше информации о cron здесь.

Кроме того, если вы хотите ввести пароль в сценарий, вы можете перейти к обсуждению здесь.

Другие вопросы по тегам