Como instalar um programa como um serviço que inicia automaticamente ao inicializar?
Pergunta
Preciso de um script PHP para ser executado como um serviço no Windows.
Existe uma maneira fácil de fazer isso?
Solução
Você deve usar sc.exe. Visita http://support.microsoft.com/kb/251192 Para os detalhes. Em seguida, basta usar o php.exe YoursedName como uma linha de comando para o serviço executar
Outras dicas
Se você não se importa de sujar as mãos com um pouco de CSharp, aqui está um URL com um aplicativo de shell que é um serviço do Windows. Ele define um cronômetro que executa um arquivo em lote (ou seja, seu script) a cada tantos segundos. Só funcionaria se o seu script fizesse uma tarefa, saia. (Marcando como wiki da comunidade, já que este não é o meu código. Estou copiando todo o código aqui, caso o site vinculado fique morto no futuro.)
http://www.akchauhan.com/create-windows-service-to-schedule-php-script-execution/
Aqui está o código mencionado no artigo vinculado.
C# para o serviço:
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");
}
}
}
O arquivo em lote necessário:
@echo off
cd\
set path=C:\xampp\php;
cd "C:\xampp\htdocs"
php import.php
exit
Esta é possivelmente uma pergunta para https://superuser.com/ ou https://serverfault.com/
Isso pode oferecer alguma ajuda sobre o serviçohttp://support.microsoft.com/kb/251192
Já faz um tempo desde que trabalhei com o Windows, mas você pode configurar um arquivo em lote para ser executado como um serviço.