Как установить программу как службу, которая автоматически запускается при загрузке?
Вопрос
Мне нужен PHP-скрипт для запуска в качестве службы в Windows.
Есть простой способ сделать это?
Решение
Вы должны использовать sc.exe.Посещать http://support.microsoft.com/kb/251192 для подробностей.Затем просто используйте php.exe yourscriptname в качестве командной строки для выполнения службы.
Другие советы
Если вы не против немного запачкать руки csharp, вот URL-адрес приложения оболочки, которое является службой Windows.Он устанавливает таймер, который выполняет пакетный файл (т. е. ваш скрипт) каждые несколько секунд.Будет работать только в том случае, если ваш скрипт выполняет задачу, а затем завершает работу.(Отмечено как вики-сообщество, поскольку это не мой код.Я копирую сюда весь код на случай, если связанный сайт в будущем перестанет работать.)
http://www.akchauhan.com/create-windows-service-to-schedule-php-script-execution/
Вот код, упомянутый в связанной статье.
С# для службы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;
namespace MyNewService
{
public partial class MyNewService : ServiceBase
{
private Timer syncTimer = null;
public MyNewService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
syncTimer = new Timer();
this.syncTimer.Interval = 180000;
this.syncTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.syncTimer_Tick);
syncTimer.Enabled = true;
}
protected override void OnStop()
{
syncTimer.Enabled = false;
}
private void syncTimer_Tick(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(@"C:\xampp\htdocs\task.bat");
}
}
}
Необходимый пакетный файл:
@echo off
cd\
set path=C:\xampp\php;
cd "C:\xampp\htdocs"
php import.php
exit
Возможно, это вопрос для https://superuser.com/ или https://serverfault.com/
Это может помочь в работе службы.http://support.microsoft.com/kb/251192
Я давно не работал с Windows, но, возможно, вы сможете настроить пакетный файл для запуска в качестве службы.