mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-23 12:28:55 +00:00
517 lines
18 KiB
XML
517 lines
18 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- Generated by xml_proto.php v2.3. Found in /scripts directory of phpdoc. -->
|
|
<refentry xml:id="function.win32-create-service" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<refnamediv>
|
|
<refname>win32_create_service</refname>
|
|
<refpurpose>Creates a new service entry in the SCM database</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type>void</type><methodname>win32_create_service</methodname>
|
|
<methodparam><type>array</type><parameter>details</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>machine</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Attempts to add a service into the SCM database. Administrative
|
|
privileges are required for this to succeed.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>details</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
An array of service details:
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>service</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The short name of the service. This is the name that you
|
|
will use to control the service using the <literal>net</literal>
|
|
command. The service must be unique (no two services can share the
|
|
same name), and, ideally, should avoid having spaces in the name.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>display</parameter></term>
|
|
<listitem>
|
|
<para>The display name of the service. This is the name that you
|
|
will see in the Services Applet.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>description</parameter></term>
|
|
<listitem>
|
|
<para>The long description of the service. This is the description
|
|
that you will see in the Services Applet.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>user</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The name of the user account under which you want the service to
|
|
run. If omitted, the service will run as the LocalSystem account.
|
|
If the username is specified, you must also provide a password.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>password</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The password that corresponds to the <parameter>user</parameter>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>path</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The full path to the executable module that will be launched when
|
|
the service is started. If omitted, the path to the current PHP
|
|
process will be used.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>params</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Command line parameters to pass to the service when it starts.
|
|
If you want to run a PHP script as the service, then the first
|
|
parameter should be the full path to the PHP script that you intend
|
|
to run. If the script name or path contains spaces, then wrap the
|
|
full path to the PHP script with <literal>"</literal>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>load_order</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Controls the load_order. This is not yet fully supported.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>svc_type</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Sets the service type. If omitted, the default value is
|
|
<constant>WIN32_SERVICE_WIN32_OWN_PROCESS</constant>.
|
|
Don't change this unless you know what you're doing.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>start_type</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Specifies how the service should be started. The default is
|
|
<constant>WIN32_SERVICE_AUTO_START</constant> which means the
|
|
service will be launched when the machine starts up.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>error_control</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Informs the SCM what it should do when it detects a problem with
|
|
the service. The default is
|
|
<constant>WIN32_SERVER_ERROR_IGNORE</constant>. Changing this
|
|
value is not yet fully supported.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>delayed_start</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
If <parameter>delayed_start</parameter> is set to &true;, then this
|
|
will inform the SCM that this service should be started after other
|
|
auto-start services are started plus a short delay.
|
|
</para>
|
|
<para>
|
|
Any service can be marked as a delayed auto-start service; however,
|
|
this setting has no effect unless the service's
|
|
<parameter>start_type</parameter> is
|
|
<constant>WIN32_SERVICE_AUTO_START</constant>.
|
|
</para>
|
|
<para>
|
|
This setting is only applicable on Windows Vista and Windows Server
|
|
2008 or greater.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>base_priority</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
To reduce the impact on processor utilisation, it may be necessary
|
|
to set a base priority lower than normal.
|
|
</para>
|
|
<para>
|
|
The <parameter>base_priority</parameter> can be set to one of the
|
|
constants define in
|
|
<link linkend="win32service.constants.basepriorities">Win32 Base Priority Classes</link>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>dependencies</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
To define the dependencies for your service, it may be necessary to set
|
|
this parameter to the list of the services names in an array.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>recovery_delay</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
This parameter defines the delay between the fail and the execution
|
|
of recovery action. The value is in milliseconds.
|
|
</para>
|
|
<para>
|
|
The default value is 60000.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>recovery_action_1</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The action will be executed on first failure. The default value is
|
|
<constant>WIN32_SC_ACTION_NONE</constant>.
|
|
</para>
|
|
<para>
|
|
The <parameter>recovery_action_1</parameter> can be set to one of the
|
|
constants defined in
|
|
<link linkend="win32service.constants.recovery-action">Win32 Recovery action</link>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>recovery_action_2</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The action will be executed on second failure. The default value is
|
|
<constant>WIN32_SC_ACTION_NONE</constant>.
|
|
</para>
|
|
<para>
|
|
The <parameter>recovery_action_2</parameter> can be set to one of the
|
|
constants defined in
|
|
<link linkend="win32service.constants.recovery-action">Win32 Recovery action</link>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>recovery_action_3</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The action will be executed on next failures. The default value is
|
|
<constant>WIN32_SC_ACTION_NONE</constant>.
|
|
</para>
|
|
<para>
|
|
The <parameter>recovery_action_3</parameter> can be set to one of the
|
|
constants defined in
|
|
<link linkend="win32service.constants.recovery-action">Win32 Recovery action</link>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>recovery_reset_period</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The failure count will be reset after the delay defined in the parameter. The delay is expirement in seconds.
|
|
</para>
|
|
<para>
|
|
The default value is <literal>86400</literal>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>recovery_enabled</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Set this parameter at &true; to enable the recovery settings, &false;
|
|
to disable.
|
|
</para>
|
|
<para>
|
|
The default value is &false;
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>recovery_reboot_msg</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Set this parameter to define the message saved into the Windows Event
|
|
Log before the reboot. Used only if one action is set to
|
|
<constant>WIN32_SC_ACTION_REBOOT</constant>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>recovery_command</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Set this parameter to define the command executed when one action is defined on
|
|
<constant>WIN32_SC_ACTION_RUN_COMMAND</constant>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>machine</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The optional machine name on which you want to create a service.
|
|
If omitted, it will use the local machine.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
&return.void;
|
|
</para>
|
|
<para>
|
|
Prior to version 1.0.0, &win32service.noerror.false.error;
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="errors">
|
|
&reftitle.errors;
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>service</parameter> parameter is empty.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>path</parameter> parameter is missing or empty.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>svc_type</parameter> parameter is wrong.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>start_type</parameter> parameter is wrong.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>error_control</parameter> parameter is wrong.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>base_priority</parameter> parameter is wrong.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>recovery_delay</parameter> parameter is not between
|
|
0 and PHP_INT_MAX.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>recovery_action_1</parameter> parameter is wrong.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>recovery_action_2</parameter> parameter is wrong.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>recovery_action_3</parameter> parameter is wrong.
|
|
</para>
|
|
<para>
|
|
A <classname>ValueError</classname> is thrown if the
|
|
value of <parameter>recovery_reset_period</parameter> parameter is not
|
|
between 0 and PHP_INT_MAX.
|
|
</para>
|
|
<para>
|
|
A <classname>Win32ServiceException</classname> is thrown on error.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<para>
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>PECL win32service 1.0.0</entry>
|
|
<entry>
|
|
Throws a <classname>ValueError</classname> on invalid data in parameters,
|
|
previously &false; was returned.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>PECL win32service 1.0.0</entry>
|
|
<entry>
|
|
Throws a <classname>Win32ServiceException</classname> on error,
|
|
previously a
|
|
<link xmlns="http://docbook.org/ns/docbook" linkend="win32service.constants.errors">Win32 Error Code</link>
|
|
was returned.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>PECL win32service 1.0.0</entry>
|
|
<entry>
|
|
The return type is now <type>void</type>, previously it was <type>mixed</type>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>PECL win32service 0.4.0</entry>
|
|
<entry>
|
|
The <parameter>dependencies</parameter>, <parameter>recovery_delay</parameter>,
|
|
<parameter>recovery_action_1</parameter>, <parameter>recovery_action_2</parameter>,
|
|
<parameter>recovery_action_3</parameter>, <parameter>recovery_reset_period</parameter>,
|
|
<parameter>recovery_enabled</parameter>, <parameter>recovery_reboot_msg</parameter>
|
|
and <parameter>recovery_command</parameter> parameters have been added.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title>A <function>win32_create_service</function> example</title>
|
|
<para>
|
|
Create a service with the short name 'dummyphp'.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$x = win32_create_service(array(
|
|
'service' => 'dummyphp', // the name of your service
|
|
'display' => 'sample dummy PHP service', // short description
|
|
'description' => 'This is a dummy Windows service created using PHP.', // long description
|
|
'params' => '"' . __FILE__ . '" run', // path to the script and parameters
|
|
));
|
|
debug_zval_dump($x);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>A <function>win32_create_service</function> example with dependencies</title>
|
|
<para>
|
|
Create a service with the short name 'dummyphp' and dependencies.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$x = win32_create_service(array(
|
|
'service' => 'dummyphp', // the name of your service
|
|
'display' => 'sample dummy PHP service', // short description
|
|
'description' => 'This is a dummy Windows service created using PHP.', // long description
|
|
'params' => '"' . __FILE__ . '" run', // path to the script and parameters
|
|
'dependencies' => array("Netman"), // The list of the dependencies
|
|
));
|
|
debug_zval_dump($x);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>A <function>win32_create_service</function> example with recovery</title>
|
|
<para>
|
|
Create a service with the short name 'dummyphp' and recovery settings.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$x = win32_create_service(array(
|
|
'service' => 'dummyphp', // the name of your service
|
|
'display' => 'sample dummy PHP service', // short description
|
|
'description' => 'This is a dummy Windows service created using PHP.', // long description
|
|
'params' => '"' . __FILE__ . '" run', // path to the script and parameters
|
|
'recovery_delay' => 120000, // Recovery action is executed after 2 minutes
|
|
'recovery_action_1' => WIN32_SC_ACTION_RESTART, // On first failure, restart the service
|
|
'recovery_action_2' => WIN32_SC_ACTION_RUN_COMMAND, // On second failure, execute the commmand
|
|
'recovery_action_3' => WIN32_SC_ACTION_NONE, // On other failure, do nothing
|
|
'recovery_reset_period' => 86400, // Reset the fail counter after 1 day
|
|
'recovery_enabled' => true, // Enable the recovery parameter
|
|
'recovery_reboot_msg' => null, // Do not define a reboot message, it's not needed here
|
|
'recovery_command' => "c:\clean-service.bat", // When the action is WIN32_SC_ACTION_RUN_COMMAND, execute this command
|
|
));
|
|
debug_zval_dump($x);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>win32_delete_service</function></member>
|
|
<member><link linkend="win32service.constants.basepriorities">Win32 Base Priority Classes</link></member>
|
|
<member><link linkend="win32service.constants.recovery-action">Win32 Recovery action</link></member>
|
|
<member><link linkend="win32service.constants.errors">Win32 Error Codes</link></member>
|
|
</simplelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|