byjg / xmlnuke-cmdline
以批处理和守护进程/服务的形式在命令行中运行XMLNuke模块和类
dev-master
2015-05-14 19:20 UTC
Requires
- php: >=5.4.0
- ext-dom: *
- ext-json: *
- ext-xml: *
- ext-xsl: *
- byjg/xmlnuke: dev-master
Suggests
- ext-curl: *
- ext-gd: *
- ext-pdo_mysql: *
This package is auto-updated.
Last update: 2024-09-18 17:53:00 UTC
README
启用从命令行运行现有的XMLNuke模块,而无需更改您的模块。
安装
项目级别
composer require "byjg/xmlnuke-cmdline=dev-master"
整个系统
composer global require "byjg/xmlnuke-cmdline=dev-master"
用法
语法是
runxmlnuke.php SCRIPT PARAMETERS
例如
runxmlnuke.php xmlnuke <FOLDER_APP> module=Lesson1.Sample1 raw=json xpath=//mediaitem
参数 SCRIPT 可以是
- xmlnuke - 运行具有所有参数的典型 XMLNuke 模块
- ws - 运行实现 SOAP 接口的一个类。更多内容请参阅这里。
- daemon - 创建 Linux 守护进程服务。更多详情请见下文。
运行 SOAP 服务
命令行中的 SOAP 服务只能通过 GET 请求调用 Web 方法。命令行可能类似于
runxmlnuke.php ws <FOLDER_APP> ws=/Lesson1.SOAP.SampleWebService svc=getEcho "text=Some Text"
使用 XMLNuke 创建守护进程/服务
服务是一个无限运行的程序。您可以通过实现一个具有 execute()
方法的类来在 XMLNuke 中创建服务。此方法不需要创建循环。XMLNuke 会为您处理循环。
示例
namespace Lesson1\Classes; class Service { protected $loop = 0; public function execute() { $this->loop++; echo $this->loop ."\n"; return true; } }
此方法必须返回 true
以继续服务,或返回 false
以停止服务。要运行此守护进程
sudo runxmlnuke.php daemon service=Lesson1.Classes.Service &
服务将以静默方式运行,但将创建两个日志文件
- /var/log/xmlnuke.daemon/Lesson1.Classes.Service.log - 服务的所有输出
- /var/log/xmlnuke.daemon/Lesson1.Classes.Service.error.log - 服务生成的所有错误。
创建 init 服务
您可以通过将此文件复制到 Linux 系统的 /etc/init
文件夹中来在系统中创建服务
示例: sample.conf
description "Sample Daemon"
author "JG"
# used to be: start on startup
# until we found some mounts weren't ready yet while booting:
start on started mountall
stop on shutdown
# Automatically Respawn:
respawn
respawn limit 99 5
exec /opt/xmlnuke/utils/cmdline/runxmlnuke.sh daemon <FOLDER_YOUR_APP> service=Lesson1.Classes.Service
现在您可以使用以下命令启动或停止服务
service sample start
或
service sample stop