Xor

<<< Back

Перезагрузка Мажордомо в Win-системах

Существует батник C:\_majordomo\shutdown.bat, позволяющий остановить МЖД без ошибок. Проблема в том, что его нельзя использовать в другом батнике, например, для остановки и рестарта МЖД, т.к. последняя строка в shutdown.bat убивает все процессы cmd в системе, в том числе и наш.

Решение проблемы возможно несколькими способами, причём самые простые варианты, имхо, доступны при использовании cscript или nircmd, идущего в стандартной установке МЖД.

Вариант для nircmd:

Создаём файл c:\_majordomo\reboot_mjd.ncl

wait 5000
killprocess vlc.exe
killprocess Apache.exe
killprocess mysqld.exe
killprocess php.exe
killprocess php.exe
killprocess Server2Go.exe
killprocess USBDeview.exe
killprocess batteryrun.exe
killprocess start.exe
killprocess cmd.exe
wait 1000
killprocess vlc.exe
killprocess Apache.exe
killprocess mysqld.exe
killprocess php.exe
killprocess php.exe
killprocess Server2Go.exe
killprocess start.exe
killprocess cmd.exe
wait 5000
exec2 show "c:\_majordomo" "c:\_majordomo\start.exe"

Фактически, это повторение shutdown.bat, только оформленное в виде скрипта для nircmd + добавлена команда старта МЖД. На всякий случай, остановка МЖД сделана два раза.

В МЖД создаём сценарий rebootMJD

say('Внимание, перегружаюсь!', 2);
sleep(5);
safe_exec('c:\_majordomo\apps\nircmd\nircmd.exe script "c:\_majordomo\reboot_mjd.ncl"');

Запуск этого сценария и перезапускает МЖД.

Если нужно перегрузить машину, создаём файл для nircmd c:\_majordomo\reboot_sys.ncl

wait 5000
killprocess vlc.exe
killprocess Apache.exe
killprocess mysqld.exe
killprocess php.exe
killprocess php.exe
killprocess Server2Go.exe
killprocess USBDeview.exe
killprocess batteryrun.exe
killprocess start.exe
killprocess cmd.exe
wait 1000
killprocess vlc.exe
killprocess Apache.exe
killprocess mysqld.exe
killprocess php.exe
killprocess php.exe
killprocess Server2Go.exe
killprocess start.exe
killprocess cmd.exe
initshutdown "shutting down the system within 10 seconds" 10 reboot

В МЖД создаём сценарий rebootSys

say('Перезагрузка машины!', 2);
sleep(5);
safe_exec('c:\_majordomo\apps\nircmd\nircmd.exe script "c:\_majordomo\reboot_sys.ncl"');

или вариант с дампом базы:

say('Сохраняю копию базы', 2);
$filename = ROOT . '/database_backup/db.sql';
$mysqlDumpPath = 'c:/_majordomo/server/mysql/bin/mysqldump.exe';
$mysqlDumpParam = ' --user=' . DB_USER . ' --password=' . DB_PASSWORD;
$mysqlDumpParam .= ' --no-create-db --add-drop-table --databases ' . DB_NAME;
if (file_exists($filename)) rename($filename, $filename . '.prev');
exec($mysqlDumpPath . $mysqlDumpParam . ' > ' . $filename);
say('Перезагрузка машины. До свидания!', 2);
safe_exec('c:\_majordomo\apps\nircmd\nircmd.exe script "c:\_majordomo\reboot_sys.ncl"');

Discuss (5) (7)

See also:
2019-12-20 расширение средств работы с events
2019-11-20 По следам наших выступлений - сколько мы наэкономили?
2019-11-04 Группа как объект - экономим на коде - 2
2019-10-26 Прикручиваем Grafana к Мажордому
2019-10-11 Группа как объект - экономим на коде
2019-09-25 Если у вас нет телеги...
2019-09-11 Датчик присутствия из ип камеры
2019-07-30 Win-платформа-замена ffmpeg для получения скриншотов из rstp - потока
2019-06-24 Форматированный отчет в телеграм - имитация таблицы
2019-04-30 Используем зомбо-ящик в Мажордомо
2019-03-24 О среднем в Мажордомо
2018-10-31 Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений

Домодедово, Россия

На форуме: xor