Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 28.02.2016
Сообщений: 5

Скрипт перезапуска другого скрипта при падении процесса

23.08.2016, 09:02. Показов 5182. Ответов 2

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Помогите организовать скрипт, чтобы он считывал, что приложение не работает и перезапускал скрипт.
В Linux полный профан, но пытаюсь понять

Есть скрипт /start.sh
сам скрипт
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash
# This script starts a Unturned 3 server on Linux machines
# Syntax: start.sh <instance name>
# Author: fr34kyn01535
 
#CONFIG
INSTANCE_NAME=$1
STEAMCMD_HOME="./steamcmd"
UNTURNED_HOME="./unturned"
 
#COLORS
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLLOW='\033[0;33m'
NC='\033[0m'
 
#Steam checks
STEAMCMD_API=$STEAMCMD_HOME/linux32/steamclient.so
UNTURNED_API=$UNTURNED_HOME/Unturned_Data/Plugins/x86/steamclient.so
printf "Steam: "
if [ -f $STEAMCMD_API ]; then
    if diff $STEAMCMD_API $UNTURNED_API >/dev/null ; then
        printf "${GREEN}UP TO DATE${NC}\n\n"
    else
        cp $STEAMCMD_API $UNTURNED_API
        printf "${YELLLOW}UPDATING${NC}\n\n"
    fi
else
    printf "${RED}NOT FOUND${NC}\n\n"
fi
 
cd $UNTURNED_HOME
 
if [ -f RocketLauncher.exe ]; then
    ulimit -n 2048
    mono RocketLauncher.exe $INSTANCE_NAME
else
    echo "RocketLauncher not found."
fi


Запускается с параметром /start.sh 1
После чего запускается приложение и в диспетчере оно выглядит вот так(скриншоты приложил)

Ну и чего бы хотелось.
Надо чтобы перезапускался start.sh 1, если этот Unturned_Headless.x86 пропадал из диспетчера(ну т.е попросту выключался\падал)

Пробовал скрипт пару скриптов, но безуспешно, бесконечный перезапуск start.sh идет
первый скрипт, как я понял это немного не правильно
Bash
1
2
3
4
5
6
while true
do
 
start.sh 1
sleep 2
done


второй скрипт
Bash
1
2
3
4
5
6
while true ; do
    if ! pgrep Unturned_Headless.x86 ; then
        start.sh 1
    fi
    sleep 1m
done


Дополнительную информацию могу приложить, если потребуется.
Еще раз повторюсь, в линуксе и программировании полный профан) Прошу помощи.
Миниатюры
Скрипт перезапуска другого скрипта при падении процесса   Скрипт перезапуска другого скрипта при падении процесса  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2016, 09:02
Ответы с готовыми решениями:

Скрипт для перезапуска процесса
Вообщем есть сервер бинарник его лежит в /home/server/server , так же есть такой же сервер лежит он скажем в /home/server2/server сервера...

Запуск процесса несколько раз при падении
Здравствуйте. Помогите пожалуйста с кодом. Мне нужно организовать перезапуск процесса при его падении, заданную количество раз. Не знаю...

Прекращение скрипта при падении стороннего сервера
Здравствуйте. Есть скрипт который, обращаясь на сервер центробанка, запрашивает курс валют за определенную дату. Вот скрипт: ...

2
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
23.08.2016, 13:40
Лучший ответ Сообщение было отмечено Danilashkirdow как решение

Решение

А при запущенном процессе что выдает
Bash
1
pgrep -l Unturned_Headless.x86
1
0 / 0 / 0
Регистрация: 28.02.2016
Сообщений: 5
23.08.2016, 15:31  [ТС]
А при запущенном процессе что выдает
Я запускал этот скрипт и он просто продублировал процесс.

Bash
1
pgrep -l Unturned_Headless.x86
А ваш вариант вроде как сработал. В моем варианте скрипта убрал 1m и поставил 1 (как я понял там секунды),а также добавил вашу правку и принудительно закрыл Unturned_Headless.x86, и буквально через пару секунд скрипт перезапустил приложение.
Благодарю)

И еще любопытно. А в чем разница между
Bash
1
pgrep -l Unturned_Headless.x86
и
Bash
1
pgrep Unturned_Headless.x86
?

Добавлено через 22 секунды
Как я понял у меня был почти рабочий скрипт, да?

Добавлено через 1 час 5 минут
Хотя не, не все так гладко, как сделать так, чтобы еще попутно завершались копии данного процесса я правильно понял, что надо дописать killall Unturned_Headless.x86?

Bash
1
2
3
4
5
6
7
while true ; do
    if ! pgrep Unturned_Headless.x86 ; then
        killall Unturned_Headless.x86
           /start.sh 1
    fi
    sleep 1m
done
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.08.2016, 15:31
Помогаю со студенческими работами здесь

Скрипт на Autoit или автозапуск приложения при его падении
Народ, помогите написать скрипт для постоянно работающего приложения! на проходной стоит приложение которое должно быть постоянно запущено,...

Завершение процесса при обнаружении другого процесса на .bat или .vbs
Будет всегда висеть в системе не закрываясь и смотреть при открытии даже одной из этих программ notepad.exe aimp.exe tc.exe будет...

Завершение процесса при обнаружении другого процесса
Здравствуйте. Люди добрые подскажите пожалуйста как мне быть. Есть приложение которое следит за процессами в диспетчере, запущены 2...

Как сделать так чтобы скрипт ASP принимал величины по post из другого скрипта?
Как сделать так чтобы скрипт ASP принимал величины по post из другого скрипта?

Команда перезапуска скрипта
Всем привет. С помощью какой команды можно перезапустить скрипт? И с помощью какой команды можно запустить выполнение другого скрипта? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru