Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Помогите наладить рестарт приложения. [Решено]  (Прочитано 2050 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн кот111

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Здравствуйте!  Помогите сделать рестрат для приложения. Я очень плохо разбираюсь в Ubuntu, поэтому попрошу помочь как можно подробнее- т.е пошаговую инструкцию если нетрудно. Запускаю его так-
 
wget https://github.com/vitelabs/go-vite/releases/download/v2.9.0/gvite-v2.9.0-linux.tar.gz  &&

tar -xzvf gvite-v2.9.0-linux.tar.gz  &&

cd ./gvite-v2.9.0-linux  &&

./bootstrap

 Проблема в том что приложение постоянно виснет и надо сделать его рестарт каждые 5 минут, но не по факту зависания, а просто что бы каждые 5 минут останавливал процесс и запускал его снова.

ТС не появлялся на Форуме более трех месяцев по состоянию на 19/03/2021 (последняя явка: 14/06/2020). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 19 Март 2021, 14:18:10 от zg_nico »

Оффлайн zg_nico

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
кот111, запуск команды через интервал времени в 10 секнуд:watch -n 10 командаСоответственно вместо команды
~/gvite-v2.8.0-linux/bootstrap
вместо 10 вписать 300 (300 секунд это 5 минут, если я пока не совсем ещё, но перепроверьте расчёт на всякий случай - я себе сегодня не доверяю).
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн Dzhoser

  • Старожил
  • *
  • Сообщений: 2430
    • Просмотр профиля
Создайте скрипт touch ~/cacacode.sh с текстом представленным ниже

#!/bin/sh
ps auxw | grep название_приложения | grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/название_приложения start > /dev/null
fi
Добавление скрипта в планировщик с запуском каждые 5 минут
crontab -eДобавляем задание
*/5 * * * * ~/cacacode.sh
« Последнее редактирование: 21 Май 2020, 21:59:04 от Dzhoser »

Оффлайн кот111

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
В какую папку создавать этот скрипт? Или просто открываю терминал и сразу пишу  vi ~cacacode.sh ?
« Последнее редактирование: 22 Май 2020, 10:17:11 от Azure »

Оффлайн Dzhoser

  • Старожил
  • *
  • Сообщений: 2430
    • Просмотр профиля
в примере это домашний каталог touch ~/cacacode.sh  подправил
« Последнее редактирование: 21 Май 2020, 21:59:44 от Dzhoser »

Оффлайн кот111

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Просто я совсем чайник и могу только с готовыми командами. давайте я напишу как я буду делать, а вы скажите так или нет.

 В терминале сразу пишу-
1) sudo -s ( потому что у меня постоянно путаница с пользователями а крон работает только для того пользователя где создавался)

2) wget https://github.com/vitelabs/go-vite/releases/download/v2.8.0/gvite-v2.8.0-linux.tar.gz  &&   
   
tar -xzvf gvite-v2.8.0-linux.tar.gz  &&   
   
cd ./gvite-v2.8.0-linux  &&

./bootstrap

3) vi touch ~/cacacode.sh и вписываю в редакторе-
Код: (html5) [Выделить]
#!/bin/sh
ps auxw | grep gvite | grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/gvite start > /dev/null
fi

4) chmod +x cacacode.sh
5) crontab -eи вписываю-
 
Код: (html5) [Выделить]
*/5 * * * * ~/cacacode.sh
« Последнее редактирование: 22 Май 2020, 10:18:55 от Azure »

Оффлайн Dzhoser

  • Старожил
  • *
  • Сообщений: 2430
    • Просмотр профиля
вроде так проверяйте

Оффлайн кот111

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
chmod +x cacacode.sh пишет что файл не найден и так тоже chmod +x touch ~/cacacode.shМожет надо вместо  vi touch ~/cacacode.sh написать vi cacacode.sh или vi ~/cacacode.sh  ?

/etc/init.d//название_приложения start > /dev/null эта строка не очень понятна- получается приложение должно быть установлено в /etc/init.d/ или необязательно? у меня его там нет, оно находится в /home/пользователь/. может так должна выглядеть в скрипте /home/пользователь/gvite start > /dev/null ?
Вообщем пока не работает все это.
« Последнее редактирование: 22 Май 2020, 10:21:15 от Azure »

Оффлайн Dzhoser

  • Старожил
  • *
  • Сообщений: 2430
    • Просмотр профиля
chmod +x cacacode.sh пишет что файл не найден и так тоже chmod +x touch ~/cacacode.sh.
А Вы в терминале в домашнем каталоге находитесь
используйте команду cd ~ для перехода в домашнюю директорию
команда ls -l | grep cacacode.sh должна отобразить cacacode.shЕсли не отобразила значит скрипт в другом месте.
chmod +x cacacode.shНеобходимо выполнять в той же директории где и скрипт
Строку /etc/init.d/gvite start > /dev/null поробуйте заменить на /home/имя пользователя/gvite start > /dev/null

Пользователь добавил сообщение 22 Май 2020, 07:18:34:
wget https://github.com/vitelabs/go-vite/releases/download/v2.8.0/gvite-v2.8.0-linux.tar.gz  &&   
   
tar -xzvf gvite-v2.8.0-linux.tar.gz 
Зто закачка и распаковка архива зачем Вы это постоянно делаете. Может вы сразу много экземпляров запускаете?
« Последнее редактирование: 22 Май 2020, 07:18:34 от Dzhoser »

Оффлайн кот111

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Зто закачка и распаковка архива зачем Вы это постоянно делаете. Может вы сразу много экземпляров запускаете?
Я так не делаю, просто все шаги указал.
 У меня проблема с cron, пытаюсь запустить простой скрипт, что бы научится сначала на простом и не получается
#!/bin/bash
echo "This"

*/1 * * * * /bin/sh /home/u2/script.sh

гуглил, это частая проблема, как только не прописывал путь в cron, ничего не получается, из терминала нормально запускается скрипт.

Оффлайн Dzhoser

  • Старожил
  • *
  • Сообщений: 2430
    • Просмотр профиля
Re: Помогите наладить рестарт приложения.
« Ответ #10 : 22 Май 2020, 14:54:50 »
Так не получится, ваш скрипт выполняется в фоне поэтому вы не видите сообщения
Можно проверить так
#!/bin/sh
touch /home/u2/script.sh
echo "PASS" > /home/u2/1.txt
exit
Текст вставить в файл и назвать script.sh
crontab -e
В открывшемся файле добавить строку
*/1 * * * * /home/u2/script.shEсли все сделали правильно
В домашнем каталоге пользователя будет файл 1.txt c надписью PASS
« Последнее редактирование: 22 Май 2020, 15:15:53 от Dzhoser »

Оффлайн кот111

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: Помогите наладить рестарт приложения.
« Ответ #11 : 24 Май 2020, 16:13:13 »
Строку /etc/init.d/gvite start > /dev/null поробуйте заменить на /home/имя пользователя/gvite start > /dev/null
Пробовал заменить не помогает. Думаю проблема в том что я не понимаю куда прилепить "touch". И сразу редактирую  vi cacacode.sh при входе в терминал.
 Я подумал, если крон может выполнять обычные команды, то может лучше без скрипта его запустить?
Если вручную мне надо перезагрузить приложение то делаю это так:

1. pgrep gvite | xargs kill -9  убиваю процесс
2. cd ./gvite-v2.8.0-linux  захожу в папку с программой
3. ./bootstrap  запускаю процесс.

Может записать в cron что то типа этого-

*/5 * * * * pgrep gvite | xargs kill -9 && cd ./gvite-v2.8.0-linux && /.bootstrap
 
Может надо еще что то добавить?
Спасибо, что помогаете!
---------------------------------

Попробовал в таком виде */5 * * * * pgrep gvite | xargs kill -9 && cd ./gvite-v2.8.0-linux && /.bootstrap
убивает процесс но не запускает его снова. Ну у же что то!
« Последнее редактирование: 24 Май 2020, 16:37:35 от кот111 »

Оффлайн Dzhoser

  • Старожил
  • *
  • Сообщений: 2430
    • Просмотр профиля
Re: Помогите наладить рестарт приложения.
« Ответ #12 : 24 Май 2020, 16:49:55 »
pgrep gvite | xargs kill -9 замените на killall название программы

Пользователь добавил сообщение 24 Май 2020, 17:23:00:
touch
это команда создания файла
« Последнее редактирование: 24 Май 2020, 17:23:00 от Dzhoser »

Оффлайн кот111

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: Помогите наладить рестарт приложения.
« Ответ #13 : 24 Май 2020, 17:34:23 »
pgrep gvite | xargs kill -9 замените на killall название программы
*/5 * * * * pgrep gvite | xargs kill -9 && cd ./gvite-v2.8.0-linux && /.bootstrap   
и
*/5 * * * * killall gvite && cd ./gvite-v2.8.0-linux && /.bootstrap

оба  варианта убивают процесс но не запускают его снова.

 Надо что то менять в этой части- "&& cd ./gvite-v2.8.0-linux && /.bootstrap"

Оффлайн Dzhoser

  • Старожил
  • *
  • Сообщений: 2430
    • Просмотр профиля
Re: Помогите наладить рестарт приложения.
« Ответ #14 : 24 Май 2020, 18:18:21 »
Правильный путь к bootstrap укажи. И да прога запуститься от рута

Пользователь добавил сообщение 24 Май 2020, 18:19:57:
https://linux-notes.org/zapustit-komandu-ot-drugogo-pol-zovatelya-v-unix-linux/
3 способ
« Последнее редактирование: 24 Май 2020, 18:19:57 от Dzhoser »

 

Страница сгенерирована за 0.08 секунд. Запросов: 25.