Xor

<<< Назад

Перезагрузка Мажордомо в 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"');

Обсуждение (5) (6)

Смотрите так же:
24.06.2019 Форматированный отчет в телеграм - имитация таблицы
30.04.2019 Используем зомбо-ящик в Мажордомо
24.03.2019 О среднем в Мажордомо
31.10.2018 Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений

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

На форуме: xor