Перейти к содержимому

Автоматический запуск скрипта или сервера разработки при входе в Windows

В Windows есть два обычных способа что-то запускать при входе: ярлык в папке автозагрузки (нажмите Win+R, введите shell:startup, нажмите Enter) или задача планировщика заданий с триггером «При входе в систему». Любой из них запускает программу или скрипт, например прямо команду вашего сервера разработки, но тогда ничто не отслеживает его, не показывает его вывод и не останавливает его за вас.

В Moonpool нет настройки запуска при входе, а у записи в apps.json нет поля, которое запускало бы её при старте Moonpool (полный список см. в разделах Поля приложения и settings.json). Вы можете сами запускать Moonpool при входе, а затем пусть скрипт запускает нужные приложения тем же вызовом, который предлагает командная строка.

Сначала зарегистрируйте приложение как обычно:

apps.json
{
"id": "site",
"name": "Site",
"group": "Web apps",
"type": "web",
"cwd": "C:\\code\\site",
"command": "npm run dev",
"port": 5173,
"url": "http://localhost:5173"
}

Затем сохраните следующее как start-moonpool-apps.ps1. Для установленной копии программа - %USERPROFILE%\.moonpool\moonpool.exe; для портативной копии используйте путь к exe-файлу этой копии.

start-moonpool-apps.ps1
$mp = "$env:USERPROFILE\.moonpool\moonpool.exe"
Start-Process $mp
Start-Sleep -Seconds 15
& $mp launch site

Чтобы launch был передан Moonpool, он уже должен работать; если в памяти ничего нет, та же команда запускает новый Moonpool, а сам вызов не выполняется. Задержка даёт ему время запуститься, поэтому на медленном компьютере увеличьте её. Добавьте по одной строке & $mp launch <id> на каждое приложение.

Наконец, поместите ярлык на этот скрипт в папку автозагрузки со следующим объектом:

Shortcut target
powershell.exe -NoProfile -WindowStyle Hidden -File "C:\Users\you\start-moonpool-apps.ps1"

Чтобы проверить, что произошло, добавьте к команде --ticket t1 и прочитайте результат в state.json (Чтение результата).

  • Сервер разработки, запущенный таким способом, «управляется» Moonpool, как и любой другой, поэтому Остановка и Выход на него действуют. Если то же приложение уже запущено (например, вручную), Moonpool показывает его как работающее, но не управляемое.
  • Moonpool не перезапускает приложение, которое завершилось, и не помнит, какие приложения работали при вашем прошлом выходе.

Moonpool: бесплатное программное обеспечение от FasterDB