luci/docs/api/modules/luci.sys.process.html
Sven Roederer 68521fca04 luci-base(-libs): move pcdata() and striptags() from util- to xml-class
To complete the previous commit these functions are defined in the resulting
luci-base package but are also used in the new luci-base-libs package. So
move them into the new xml-module of the new package.

Signed-off-by: Sven Roederer <freifunk@it-solutions.geroedel.de>
2020-07-19 20:14:35 +02:00

523 lines
8.4 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Reference</title>
<link rel="stylesheet" href="../luadoc.css" type="text/css" />
<!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->
<div id="main">
<div id="navigation">
<h1>LuaDoc</h1>
<ul>
<li><a href="../index.html">Index</a></li>
</ul>
<!-- Module list -->
<h1>Modules</h1>
<ul>
<li>
<a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
</li>
<li>
<a href="../modules/luci.http.html">luci.http</a>
</li>
<li>
<a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
<a href="../modules/luci.http.date.html">luci.http.date</a>
</li>
<li>
<a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
<a href="../modules/luci.i18n.html">luci.i18n</a>
</li>
<li>
<a href="../modules/luci.ip.html">luci.ip</a>
</li>
<li>
<a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
</li>
<li>
<a href="../modules/luci.json.html">luci.json</a>
</li>
<li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
<li>
<a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
</li>
<li>
<a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
</li>
<li>
<a href="../modules/luci.model.uci.html">luci.model.uci</a>
</li>
<li>
<a href="../modules/luci.rpcc.html">luci.rpcc</a>
</li>
<li>
<a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
</li>
<li>
<a href="../modules/luci.sys.html">luci.sys</a>
</li>
<li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
<li>
<a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
</li>
<li>
<a href="../modules/luci.sys.net.html">luci.sys.net</a>
</li>
<li><strong>luci.sys.process</strong></li>
<li>
<a href="../modules/luci.sys.user.html">luci.sys.user</a>
</li>
<li>
<a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
</li>
<li>
<a href="../modules/luci.util.html">luci.util</a>
</li>
<li>
<a href="../modules/luci.xml.html">luci.xml</a>
</li>
<li>
<a href="../modules/nixio.html">nixio</a>
</li>
<li>
<a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
</li>
<li>
<a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
</li>
<li>
<a href="../modules/nixio.File.html">nixio.File</a>
</li>
<li>
<a href="../modules/nixio.README.html">nixio.README</a>
</li>
<li>
<a href="../modules/nixio.Socket.html">nixio.Socket</a>
</li>
<li>
<a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
</li>
<li>
<a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
</li>
<li>
<a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
</li>
<li>
<a href="../modules/nixio.bin.html">nixio.bin</a>
</li>
<li>
<a href="../modules/nixio.bit.html">nixio.bit</a>
</li>
<li>
<a href="../modules/nixio.crypto.html">nixio.crypto</a>
</li>
<li>
<a href="../modules/nixio.fs.html">nixio.fs</a>
</li>
</ul>
<!-- File list -->
</div><!-- id="navigation" -->
<div id="content">
<h1>Class <code>luci.sys.process</code></h1>
<p>
LuCI system utilities / process related functions.
</p>
<h2>Functions</h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#process.exec">exec</a>&nbsp;(commend, stdout, stderr, nowait)</td>
<td class="summary">
Execute a process, optionally capturing stdio.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#process.info">info</a>&nbsp;()</td>
<td class="summary">
Get the current process id.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#process.list">list</a>&nbsp;()</td>
<td class="summary">
Retrieve information about currently running processes.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#process.setgroup">setgroup</a>&nbsp;(gid)</td>
<td class="summary">
Set the gid of a process identified by given pid.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#process.setuser">setuser</a>&nbsp;(uid)</td>
<td class="summary">
Set the uid of a process identified by given pid.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#process.signal">signal</a>&nbsp;(pid, sig)</td>
<td class="summary">
Send a signal to a process identified by given pid.</td>
</tr>
</table>
<br/>
<br/>
<h2><a name="functions"></a>Functions</h2>
<dl class="function">
<dt><a name="process.exec"></a><strong>exec</strong>&nbsp;(commend, stdout, stderr, nowait)</dt>
<dd>
Execute a process, optionally capturing stdio.
Executes the process specified by the given argv vector, e.g.
<code>{ "/bin/sh", "-c", "echo 1" }</code> and waits for it to terminate unless a true
value has been passed for the "nowait" parameter.
When a function value is passed for the stdout or stderr arguments, the passed
function is repeatedly called for each chunk read from the corresponding stdio
stream. The read data is passed as string containing at most 4096 bytes at a
time.
When a true, non-function value is passed for the stdout or stderr arguments,
the data of the corresponding stdio stream is read into an internal string
buffer and returned as "stdout" or "stderr" field respectively in the result
table.
When a true value is passed to the nowait parameter, the function does not
await process termination but returns as soon as all captured stdio streams
have been closed or - if no streams are captured - immediately after launching
the process.
<h3>Parameters</h3>
<ul>
<li>
commend: Table containing the argv vector to execute
</li>
<li>
stdout: Callback function or boolean to indicate capturing (optional)
</li>
<li>
stderr: Callback function or boolean to indicate capturing (optional)
</li>
<li>
nowait: Don't wait for process termination when true (optional)
</li>
</ul>
<h3>Return value:</h3>
Table containing at least the fields "code" which holds the exit
status of the invoked process or "-1" on error and "pid", which
contains the process id assigned to the spawned process. When
stdout and/or stderr capturing has been requested, it additionally
contains "stdout" and "stderr" fields respectively, holding the
captured stdio data as string.
</dd>
<dt><a name="process.info"></a><strong>info</strong>&nbsp;()</dt>
<dd>
Get the current process id.
<h3>Return value:</h3>
Number containing the current pid
</dd>
<dt><a name="process.list"></a><strong>list</strong>&nbsp;()</dt>
<dd>
Retrieve information about currently running processes.
<h3>Return value:</h3>
Table containing process information
</dd>
<dt><a name="process.setgroup"></a><strong>setgroup</strong>&nbsp;(gid)</dt>
<dd>
Set the gid of a process identified by given pid.
<h3>Parameters</h3>
<ul>
<li>
gid: Number containing the Unix group id
</li>
</ul>
<h3>Return values:</h3>
<ol>
<li>Boolean indicating successful operation
<li>String containing the error message if failed
<li>Number containing the error code if failed
</ol>
</dd>
<dt><a name="process.setuser"></a><strong>setuser</strong>&nbsp;(uid)</dt>
<dd>
Set the uid of a process identified by given pid.
<h3>Parameters</h3>
<ul>
<li>
uid: Number containing the Unix user id
</li>
</ul>
<h3>Return values:</h3>
<ol>
<li>Boolean indicating successful operation
<li>String containing the error message if failed
<li>Number containing the error code if failed
</ol>
</dd>
<dt><a name="process.signal"></a><strong>signal</strong>&nbsp;(pid, sig)</dt>
<dd>
Send a signal to a process identified by given pid.
<h3>Parameters</h3>
<ul>
<li>
pid: Number containing the process id
</li>
<li>
sig: Signal to send (default: 15 [SIGTERM])
</li>
</ul>
<h3>Return values:</h3>
<ol>
<li>Boolean indicating successful operation
<li>Number containing the error code if failed
</ol>
</dd>
</dl>
</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>