Как установить программу как сервис, который автоматически запускается при загрузке? - PullRequest
2 голосов
/ 27 января 2010

Мне нужен PHP-скрипт для запуска в качестве службы в Windows.

Есть ли простой способ сделать это?

Ответы [ 3 ]

1 голос
/ 27 января 2010

Если вы не возражаете запачкать руки небольшим csharp, вот 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  
1 голос
/ 27 января 2010

Вы должны использовать sc.exe. Посетите http://support.microsoft.com/kb/251192 для деталей. Затем просто используйте php.exe yourscriptname в качестве командной строки для службы, чтобы выполнить

0 голосов
/ 27 января 2010

Возможно, это вопрос к https://superuser.com/ или https://serverfault.com/

Это может предложить некоторую помощь об услуге http://support.microsoft.com/kb/251192

Прошло много времени с тех пор, как я работал с Windows, но вы можете настроить пакетный файл для запуска в качестве службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...