Автоматически запустите службу Windows на установке

Если под всеми разрешениями вы подразумеваете 777

Перейдите в папку и

chmod -R 777 .
116
задан GEOCHET 25 June 2009 в 22:35
поделиться

7 ответов

В классе установщика добавьте обработчик для события AfterInstall. Затем вы можете вызвать ServiceController в обработчике событий, чтобы запустить службу.

using System.ServiceProcess;

public ServiceInstaller()
{
    //... Installer code here
    this.AfterInstall += new InstallEventHandler(ServiceInstaller_AfterInstall);
}

void ServiceInstaller_AfterInstall(object sender, InstallEventArgs e)
{

ServiceInstaller serviceInstaller = (ServiceInstaller) sender;

    using (ServiceController sc = new ServiceController(serviceInstaller.ServiceName))
    {
         sc.Start();
    }
}

Теперь, когда вы запустите InstallUtil в своем установщике, он установит, а затем запустит службу.

214
ответ дан 24 November 2019 в 02:14
поделиться

Как насчет следующих команд?

net start "<service name>"
net stop "<service name>"
6
ответ дан 24 November 2019 в 02:14
поделиться

Для запуска службы можно использовать следующую командную строку:

net start *servicename*
4
ответ дан 24 November 2019 в 02:14
поделиться

Программные опции для управления службами:

  • Можно использовать собственный код, «Запуск службы» . Максимальный контроль с минимумом зависимостей, но большая часть работы.
  • WMI: Win32_Service имеет метод StartService . Это хорошо для случаев, когда вам нужно иметь возможность выполнять другую обработку (например, выбрать, какую службу).
  • PowerShell: выполнить Start-Service через RunspaceInvoke или создать свой own Runspace и его метод CreatePipeline для выполнения. Это хорошо для случаев, когда вам нужно иметь возможность выполнять другую обработку (например, чтобы выбрать, какую службу) с гораздо более простой моделью кодирования, чем WMI, но зависит от установленного PSH.
  • A. Приложение .NET может использовать ServiceController
4
ответ дан 24 November 2019 в 02:14
поделиться

Используйте ServiceController , чтобы запустить службу из кода.

Обновление: И более правильный способ запустить службу из командной строки - использовать команду «sc» ( Service Controller ) вместо «net».

2
ответ дан 24 November 2019 в 02:14
поделиться

Автоматический запуск означает, что служба автоматически запускается при запуске Windows. Как уже упоминалось, чтобы запустить его из консоли, вы должны использовать ServiceController.

0
ответ дан 24 November 2019 в 02:14
поделиться

Вы можете использовать метод GetServices из ServiceController класс, чтобы получить массив всех сервисов. Затем найдите свою службу, проверив свойство ServiceName каждой службы. Когда вы найдете свою службу, вызовите метод Start , чтобы запустить ее.

Вы также должны проверить свойство Status , чтобы узнать, в каком состоянии она уже находится, перед вызовом start ( он может быть запущен, приостановлен, остановлен и т. д.).

0
ответ дан 24 November 2019 в 02:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: