Как установить программу как службу, которая автоматически запускается при загрузке?

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

  •  23-09-2019
  •  | 
  •  

Вопрос

Мне нужен 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, но, возможно, вы сможете настроить пакетный файл для запуска в качестве службы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top