Як запустити будь-яку програму як фонову службу у Windows
Якщо ви, як і більшість користувачів Windows, у вас багато великих утиліт, які запускаються під час запуску Windows. Хоча це працює відмінно для більшості додатків, є деякі, які було б непогано, щоб почати навіть до того, як користувач входить в комп'ютер. Для цього потрібно запустити програму як службу Windows.
Служби Windows - це особливий клас програм, налаштований для запуску та запуску у фоновому режимі, зазвичай без будь-якого інтерфейсу користувача і без необхідності входу користувача на ПК. Багато геймерів та досвідчені користувачі знають їх як ті речі, які ви використовували для вимкнення, щоб допомогти прискорити вашу систему, хоча це дійсно не потрібно більше.
Основною перевагою запуску програми як сервісу є те, що перед користувачем можна запустити програму перед входом у систему. Це може бути особливо важливим для програм, які надають важливі послуги, які потрібно отримати, коли ви перебуваєте далеко від комп'ютера.
Прекрасним прикладом цього є Plex, додаток медіа-сервера, який може передавати локальний вміст майже до будь-якого пристрою, яким ви володієте. Звичайно, ви можете дозволити йому сидіти в системному треї, як звичайна програма, але що, якщо комп'ютер перезавантажиться через відключення електроенергії або заплановані оновлення? Поки ви не ввійдете в систему на ПК, Plex не буде доступним. Це дратує, якщо ви повинні запустити в іншу кімнату, щоб почати Plex назад в той час як ваш попкорн стає холодним, і супер дратує, якщо ви поза містом і намагаються передати свої медіа через Інтернет. Налаштування Plex як служби вирішить цю проблему.
Перш ніж розпочати роботу, вам слід знати кілька важливих застережень щодо запуску програми як служби:
- Програма не помістить піктограму в системний лоток. Якщо вам потрібен регулярно доступний інтерфейс для програми, він може не найкраще підходити для запуску в якості служби.
- Якщо потрібно внести зміни до налаштувань або оновлення, потрібно зупинити службу, запустити програму як звичайну програму, зробити те, що потрібно, зупинити програму, а потім знову запустити службу..
- Якщо програма вже налаштована для запуску під час запуску Windows, потрібно вимкнути цю функцію, щоб у вас не було запущено два примірники. Більшість програм мають опцію в інтерфейсі для перемикання цього параметра. Інші можуть додати себе до папки автозавантаження, тому їх можна видалити.
Готові до рулону? Давайте поговоримо про те, як його налаштувати.
Крок перший: Встановіть SrvStart
Щоб запустити програму як службу, вам знадобиться невелика утиліта третьої сторони. Є декілька, але наш фаворит - SrvStart. Спочатку він був розроблений для Windows NT і працюватиме з будь-якою версією Windows від Windows XP.
Щоб розпочати роботу, перейдіть на сторінку завантаження SrvStart і захопіть утиліту. Завантаження містить всього чотири файли (дві DLL і два EXE-файли). Немає інсталятора; замість цього скопіюйте їх на комп'ютер C: Windows
папки до основної папки Windows, щоб "встановити" SrvStart.
Ми також припустимо, що ви вже встановили та налаштували будь-яку програму, яку ви збираєтеся перетворити на послугу, але якщо ви цього не зробили, тепер це був би гарний час для цього.
Крок другий: Створіть конфігураційний файл для нової служби
Далі потрібно створити файл конфігурації, який SrvStart буде читати для створення служби. З SrvStart ви можете багато чого зробити, і ви можете прочитати докладну інформацію про всі параметри конфігурації на сторінці документації. Для цього прикладу ми будемо використовувати лише дві команди: стартап
, який вказує програму для запуску, і shutdown_method
, який повідомляє SrvStart, як закрити програму, коли відповідна послуга зупинена.
Запустіть Блокнот і створіть свій конфігураційний файл, використовуючи формат нижче. Тут ми використовуємо Plex, але ви можете створити файл для будь-якої програми, яку ви хочете запустити як послугу. The стартап
команда просто вказує шлях, на якому знаходиться виконуваний файл. Для shutdown_method
команда, ми використовуємо winmessage
параметр, який змушує SrvStart надіслати повідомлення про закриття Windows на будь-які вікна, відкриті службою.
[Plex] startup = "C: Програмні файли (x86) Plex-медіа-сервер Plex Media Server.exe" shutdown_method = winmessage
Очевидно, налаштуйте шлях і назву відповідно до програми, яку ви запускаєте.
Збережіть новий файл конфігурації де завгодно, і замініть розширення .txt на розширення .ini. Зверніть увагу на ім'я файлу, оскільки нам знадобиться його на наступному кроці. Для зручності введення командного рядка ми пропонуємо тимчасово зберегти цей файл прямо на диску C :..
Крок третій: Використовуйте командний рядок для створення нової служби
Наступним кроком є використання команди Контролера служб Windows (SC) для створення нової служби на основі критеріїв у вашому конфігураційному файлі. Відкрийте командний рядок, клацнувши правою кнопкою миші меню "Пуск" (або натиснувши Windows + X), виберіть "Командний рядок (адміністратор)", а потім клацніть Так, щоб дозволити йому працювати з правами адміністратора.
У командному рядку використовуйте наступний синтаксис для створення нової служби:
SC CREATE Displayname = "" binpath = "srvstart.exe -c" початок =
У цій команді слід відзначити кілька речей. По-перше, кожен знак рівності (=) має пробіл після нього. Це потрібно. Також, Ваша цінність повністю залежить від вас. І, нарешті, для
значення, ви хочете використовувати
авто
щоб служба автоматично запускалася за допомогою Windows.
Таким чином, у нашому прикладі Plex команда виглядатиме так:
SC CREATE Plex Displayname = "Plex" binpath = "запуску Plex-c: PlexService.ini" start = auto
Так, ви читаєте це право: я використав C: PlexService.ini
замість C: PlexService.ini
. Команда вимагає видалення слеш.
Коли ви запускаєте команду, ви повинні отримати повідомлення про успіх, якщо все буде добре.
З цього моменту ваша нова служба буде запускатися кожного разу, коли Windows запускається. Якщо відкрити інтерфейс служб Windows (просто натисніть кнопку Пуск і введіть "Служби"), ви зможете знайти та налаштувати нову службу так само, як і будь-який інший.
І це все. Якщо у вас є програми, які починаються з Windows, і ви бажаєте, щоб вони почали без входу користувача, досить легко перетворити будь-яку програму на службу. Ми тільки що торкнулися основного методу для створення та запуску нової служби, але є багато іншого, що ви можете зробити з SrvStart, щоб точно налаштувати те, як працює служба. Обов'язково ознайомтеся з документацією, якщо хочете дізнатися більше.