如何将程序安装为启动时自动启动的服务?

时间:2010-01-27 10:54:59

标签: php windows service

我需要一个PHP脚本在Windows中作为服务运行。

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:1)

您必须使用sc.exe。请访问http://support.microsoft.com/kb/251192了解详情。  然后使用php.exe yourscriptname作为服务执行的命令行

答案 1 :(得分:1)

如果你不介意用一点csharp弄脏你的手,这里有一个带有shell应用程序的URL,这是一个windows服务。它设置一个计时器,每隔很多秒执行一个批处理文件(即你的脚本)。仅在您的脚本执行任务然后退出时才有效。 (标记为社区维基,因为这不是我的代码。我在这里复制所有代码以防链接网站将来死亡。)

http://www.akchauhan.com/create-windows-service-to-schedule-php-script-execution/

以下是链接文章中提到的代码。

服务的C#:

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  

答案 2 :(得分:0)

这可能是https://superuser.com/https://serverfault.com/

的问题

这可能会为该服务提供一些帮助 http://support.microsoft.com/kb/251192

自从我使用Windows以来已经有一段时间了,但您可以设置批处理文件作为服务运行。