Перезапуск служб в 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 здесь.
Кроме того, если вы хотите ввести пароль в сценарий, вы можете перейти к обсуждению здесь.