Я вижу два варианта:
- Серверный скрипт - как PHP, Python и т.д., который запускает свою задачу.
- Плагин для браузера, который использует собственные библиотеки (Start an external application from a Google Chrome Extension?).
Вариант один, конечно, намного проще. И вам даже не нужен полный веб-стол, если вы просто хотите запустить его без аргументов или чего-то еще.
Python может быть столь же просто, как:
import socket
import subprocess
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
s.bind(('0.0.0.0', 17777))
s.listen()
while True:
connection, client_address = soc.accept();
connection.send('HTTP/1.1 200 OK\r\n\r\n')
subprocess.call(['grunt', '..'])
connection.close()
Тогда просто ударил его, как <a href="host:17777">run</a>
или XHR.
Для более экзотических вещей, таких как отчет о состоянии, аргументы и т. Д., Вам понадобится нечто более сложное. Если у вас уже есть PHP на основе стека, вы можете просто сделать что-то вроде:
<?php
echo `grunt ...`;
?>
Это, конечно ждать ворчание до конца. Таким образом, вы можете посмотреть на PHP pcntl
и тому подобное.
Другая идея, если вы используете что-то вроде supervisord
или ramona
, которые имеют веб-панели управления, заключается в том, чтобы отправлять запросы им, чтобы они могли начать процесс хрюкания.
Таким образом, вышеизложенного должно быть достаточно для крошечного прецедента, не столь гибкого. Для чего-то более прочного, расширяемого и серьезного взгляда на celery
и других очередей задач. Вы можете получить довольно мощный центр управления и управления, используя flask
, например, вместе с очередью задач. Построение одного в PHP тоже не должно быть существенно затруднительным.
Удачи.
Спасибо. это делается с помощью < ' –
Обратите внимание, что обратными являются операторы выполнения в PHP. http://php.net/manual/en/language.operators.execution.php – soulseekah