Como instalar um programa como um serviço que inicia automaticamente ao inicializar?

StackOverflow https://stackoverflow.com/questions/2146204

  •  23-09-2019
  •  | 
  •  

Pergunta

Preciso de um script PHP para ser executado como um serviço no Windows.

Existe uma maneira fácil de fazer isso?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top