@Bombesko
Чайник

Как закрыть процесс или службу с помощью JS?

Добрый день всем! Проведя 5 минут в гугле ответа не нашёл...
У меня есть служба в Windows 10, которая должна быть отключена для проведения бэкапа определенного файла. А не то могут возникнуть проблемы (нарушится целостность файла). Можно убрать\убить процесс (вместо службы, или-или) и после бэкапа перезапустить его, это второй вариант.
Вопрос: можно как-то остановить службу или процесс через js\node.js???
Спасибо!
  • Вопрос задан
  • 147 просмотров
Решения вопроса 3
hzzzzl
@hzzzzl
так получится?
https://stackoverflow.com/a/23726857
Ответ написан
Комментировать
@VadimKholodilo
По ссылке выше хороший ответ. Идея в том, что надо запустить процесс net и передать ему параметр start.
Есть очень классная библиотека для Node.js, которая облегчает работу с shell: https://www.npmjs.com/package/shelljs
У этой библиотеки есть функция exec, которая может быть как синхронной, так и асинхронной. Если вторым параметром передать callback, то она будет асинхронной. Можно сделать обёртку над exec, что бы были промисы, но без промисов ваша задача будет решаться вот так:
var shell = require('shelljs');
var serviceName = 'dhcp'; // Имя службы
var command = 'net stop '+serviceName; // Команда для выполнения. Да
, можно было воспользоваться шаблонными строками, но для простоты я не буду этого делать. С шаблонными строками было бы вот так
// var command = `net stop ${serviceName}`
shell.exec(command, function(code, stdout, stderr) {
console.log('Code: ', code);
console.log('stdout: ', stdout);
console.log('stderror': ', stderr);
});
Либо же в синхронном, тогда вам вернётся объект, из которого можно получить те же параметры.
Ответ написан
FoxCloud
@FoxCloud
Хостинг и облачные сервисы
Здравствуйте!
Некоторые утилиты для бэкапа файлов в Windows10 имеют функции:
- исполнить скрипт до начала бэкапа.
- исполнить скрипт после создания бэкапа.
Это может помочь в решении вопроса.

Пример такой утилиты для создания бэкапов - Duplicati
И команды будут иметь вид:
net stop SERVICE_NAME

И возобновить службу:
net start SERVICE_NAME

https://www.npmjs.com/package/win-service
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы