Скрипт перезапуска службы 1С

razer

New member
Сообщения
3
#1
Здравствуйте!
Простите, если не сюда пишу.

Астра Линукс Орел серверная версия

На линукс переехали недавно. Поэтому простите за глупые вопросы.
Именно перезапуском службы решили избавиться от проблем занятых и зависших лицензий 1С, одновременно и память освободить.
В скриптах я несилен, поэтому это получилось:
Bash:
#!/bin/bash
logfile="/var/backup/stopstartlog.txt"
date '+%d.%m.%Y %H:%M:%S' >> $logfile
1csvc=$(systemctl list-units --type=service --plain --no-legend | cut -f1 -d' ' | grep srv1cv)
pgre=$(systemctl list-units --type=service --plain --no-legend | cut -f1 -d' ' | grep postgrespro-1c)
systemctl restart $1csvc  >> $logfile
systemctl restart $pgre >> $logfile
sleep 301
prc=$(ps -d | grep srv1cv)
if [[ -z $src ]]; then
    systemctl start $1csvc  >> $logfile
fi
Но мое произведение не работает :)
Не подскажите, как составить sh скрипт?
Перезагрузку делаю под root'ом
В терминале перезагружаю:
Код:
systemctl restart srv1cv8-8.3.22.2106@service
systemctl restart postgrespro-1c-14
Мне нужно перезагрузить:
srv1cv8-8.3.22.2106@default.service
srv1cv8-8.3.22.2106@.service
srv1cv8-8.3.22.2106@service.service

Буду благодарен советам.
 

Карл

New member
Сообщения
418
#2
мне кажется нужно сделать:

Код:
systemctl stop srv1cv8-8.3.22.2106
systemctl restart postgrespro-1c-14
systemctl start srv1cv8-8.3.22.2106
 

MickM

New member
Сообщения
104
#5
или чтото иное надо, типа периодически ?
Вот же, пишут:
Именно перезапуском службы решили избавиться от проблем занятых и зависших лицензий 1С, одновременно и память освободить.
Но мое произведение не работает :)
Оттестируйте работу каждой строки в терминале отдельно.

Например, вот это вызывает вопрос - каким образом этак конструкция должна была работать?
prc=$(ps -d | grep srv1cv)
if [[ -z $src ]]; then
systemctl start $1csvc >> $logfile
fi
Данная переменная всегда будет не инициализирована, по той причине, что процессов по указанному паттерну сервер 1с8 не запускает, да, и, Вы в условии проверяете вообще другую переменную.

Код:
ps -d | egrep -E '(ragent|rmngr|rphost)'
   2615 ?        00:00:11 rmngr
   2731 ?        00:00:07 rphost
 

Карл

New member
Сообщения
418
#6
скрипт ТС излишне сложен, достаточно трех строк или меньше (с 1с не знаком, и смысла перезапускать postgres мне не очень ясен)
и к астре это вообще не имеет прямого отношения - ему бы на форум 1С такое спрашивать )
 

MickM

New member
Сообщения
104
#7
скрипт ТС излишне сложен, достаточно трех строк или меньше
Трёх строчек окажется не достаточным, ведь сценарий должен быть универсальный - написал и забыл, поэтому в сценарии и грепаются сервисы по паттерну.

(с 1с не знаком, и смысла перезапускать postgres мне не очень ясен)
Эта процедура скидывает все буферы на диск, тем самым освобождает оп.память, что устраивает пользователя.

Хотя конечно сурьёзные задачи такими способами не решаются.
 

Карл

New member
Сообщения
418
#8
Трёх строчек окажется не достаточным, ведь сценарий должен быть универсальный - написал и забыл, поэтому в сценарии и грепаются сервисы по паттерну.
наверно да, но странно что в имени сервиса есть версия, обычно такое не делают, но т.к. это 1С, видимо так и надо )