luci.sys.process.html 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html>
  4. <head>
  5. <title>Reference</title>
  6. <link rel="stylesheet" href="../luadoc.css" type="text/css" />
  7. <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
  8. </head>
  9. <body>
  10. <div id="container">
  11. <div id="product">
  12. <div id="product_logo"></div>
  13. <div id="product_name"><big><b></b></big></div>
  14. <div id="product_description"></div>
  15. </div> <!-- id="product" -->
  16. <div id="main">
  17. <div id="navigation">
  18. <h1>LuaDoc</h1>
  19. <ul>
  20. <li><a href="../index.html">Index</a></li>
  21. </ul>
  22. <!-- Module list -->
  23. <h1>Modules</h1>
  24. <ul>
  25. <li>
  26. <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
  27. </li>
  28. <li>
  29. <a href="../modules/luci.http.html">luci.http</a>
  30. </li>
  31. <li>
  32. <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
  33. </li>
  34. <li>
  35. <a href="../modules/luci.http.date.html">luci.http.date</a>
  36. </li>
  37. <li>
  38. <a href="../modules/luci.http.mime.html">luci.http.mime</a>
  39. </li>
  40. <li>
  41. <a href="../modules/luci.i18n.html">luci.i18n</a>
  42. </li>
  43. <li>
  44. <a href="../modules/luci.ip.html">luci.ip</a>
  45. </li>
  46. <li>
  47. <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
  48. </li>
  49. <li>
  50. <a href="../modules/luci.json.html">luci.json</a>
  51. </li>
  52. <li>
  53. <a href="../modules/luci.jsonc.html">luci.jsonc</a>
  54. </li>
  55. <li>
  56. <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
  57. </li>
  58. <li>
  59. <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
  60. </li>
  61. <li>
  62. <a href="../modules/luci.model.uci.html">luci.model.uci</a>
  63. </li>
  64. <li>
  65. <a href="../modules/luci.rpcc.html">luci.rpcc</a>
  66. </li>
  67. <li>
  68. <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
  69. </li>
  70. <li>
  71. <a href="../modules/luci.sys.html">luci.sys</a>
  72. </li>
  73. <li>
  74. <a href="../modules/luci.sys.init.html">luci.sys.init</a>
  75. </li>
  76. <li>
  77. <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
  78. </li>
  79. <li>
  80. <a href="../modules/luci.sys.net.html">luci.sys.net</a>
  81. </li>
  82. <li><strong>luci.sys.process</strong></li>
  83. <li>
  84. <a href="../modules/luci.sys.user.html">luci.sys.user</a>
  85. </li>
  86. <li>
  87. <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
  88. </li>
  89. <li>
  90. <a href="../modules/luci.util.html">luci.util</a>
  91. </li>
  92. <li>
  93. <a href="../modules/luci.xml.html">luci.xml</a>
  94. </li>
  95. <li>
  96. <a href="../modules/nixio.html">nixio</a>
  97. </li>
  98. <li>
  99. <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
  100. </li>
  101. <li>
  102. <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
  103. </li>
  104. <li>
  105. <a href="../modules/nixio.File.html">nixio.File</a>
  106. </li>
  107. <li>
  108. <a href="../modules/nixio.README.html">nixio.README</a>
  109. </li>
  110. <li>
  111. <a href="../modules/nixio.Socket.html">nixio.Socket</a>
  112. </li>
  113. <li>
  114. <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
  115. </li>
  116. <li>
  117. <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
  118. </li>
  119. <li>
  120. <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
  121. </li>
  122. <li>
  123. <a href="../modules/nixio.bin.html">nixio.bin</a>
  124. </li>
  125. <li>
  126. <a href="../modules/nixio.bit.html">nixio.bit</a>
  127. </li>
  128. <li>
  129. <a href="../modules/nixio.crypto.html">nixio.crypto</a>
  130. </li>
  131. <li>
  132. <a href="../modules/nixio.fs.html">nixio.fs</a>
  133. </li>
  134. </ul>
  135. <!-- File list -->
  136. </div><!-- id="navigation" -->
  137. <div id="content">
  138. <h1>Class <code>luci.sys.process</code></h1>
  139. <p>
  140. LuCI system utilities / process related functions.
  141. </p>
  142. <h2>Functions</h2>
  143. <table class="function_list">
  144. <tr>
  145. <td class="name" nowrap><a href="#process.exec">exec</a>&nbsp;(commend, stdout, stderr, nowait)</td>
  146. <td class="summary">
  147. Execute a process, optionally capturing stdio.</td>
  148. </tr>
  149. <tr>
  150. <td class="name" nowrap><a href="#process.info">info</a>&nbsp;()</td>
  151. <td class="summary">
  152. Get the current process id.</td>
  153. </tr>
  154. <tr>
  155. <td class="name" nowrap><a href="#process.list">list</a>&nbsp;()</td>
  156. <td class="summary">
  157. Retrieve information about currently running processes.</td>
  158. </tr>
  159. <tr>
  160. <td class="name" nowrap><a href="#process.setgroup">setgroup</a>&nbsp;(gid)</td>
  161. <td class="summary">
  162. Set the gid of a process identified by given pid.</td>
  163. </tr>
  164. <tr>
  165. <td class="name" nowrap><a href="#process.setuser">setuser</a>&nbsp;(uid)</td>
  166. <td class="summary">
  167. Set the uid of a process identified by given pid.</td>
  168. </tr>
  169. <tr>
  170. <td class="name" nowrap><a href="#process.signal">signal</a>&nbsp;(pid, sig)</td>
  171. <td class="summary">
  172. Send a signal to a process identified by given pid.</td>
  173. </tr>
  174. </table>
  175. <br/>
  176. <br/>
  177. <h2><a name="functions"></a>Functions</h2>
  178. <dl class="function">
  179. <dt><a name="process.exec"></a><strong>exec</strong>&nbsp;(commend, stdout, stderr, nowait)</dt>
  180. <dd>
  181. Execute a process, optionally capturing stdio.
  182. Executes the process specified by the given argv vector, e.g.
  183. <code>{ "/bin/sh", "-c", "echo 1" }</code> and waits for it to terminate unless a true
  184. value has been passed for the "nowait" parameter.
  185. When a function value is passed for the stdout or stderr arguments, the passed
  186. function is repeatedly called for each chunk read from the corresponding stdio
  187. stream. The read data is passed as string containing at most 4096 bytes at a
  188. time.
  189. When a true, non-function value is passed for the stdout or stderr arguments,
  190. the data of the corresponding stdio stream is read into an internal string
  191. buffer and returned as "stdout" or "stderr" field respectively in the result
  192. table.
  193. When a true value is passed to the nowait parameter, the function does not
  194. await process termination but returns as soon as all captured stdio streams
  195. have been closed or - if no streams are captured - immediately after launching
  196. the process.
  197. <h3>Parameters</h3>
  198. <ul>
  199. <li>
  200. commend: Table containing the argv vector to execute
  201. </li>
  202. <li>
  203. stdout: Callback function or boolean to indicate capturing (optional)
  204. </li>
  205. <li>
  206. stderr: Callback function or boolean to indicate capturing (optional)
  207. </li>
  208. <li>
  209. nowait: Don't wait for process termination when true (optional)
  210. </li>
  211. </ul>
  212. <h3>Return value:</h3>
  213. Table containing at least the fields "code" which holds the exit
  214. status of the invoked process or "-1" on error and "pid", which
  215. contains the process id assigned to the spawned process. When
  216. stdout and/or stderr capturing has been requested, it additionally
  217. contains "stdout" and "stderr" fields respectively, holding the
  218. captured stdio data as string.
  219. </dd>
  220. <dt><a name="process.info"></a><strong>info</strong>&nbsp;()</dt>
  221. <dd>
  222. Get the current process id.
  223. <h3>Return value:</h3>
  224. Number containing the current pid
  225. </dd>
  226. <dt><a name="process.list"></a><strong>list</strong>&nbsp;()</dt>
  227. <dd>
  228. Retrieve information about currently running processes.
  229. <h3>Return value:</h3>
  230. Table containing process information
  231. </dd>
  232. <dt><a name="process.setgroup"></a><strong>setgroup</strong>&nbsp;(gid)</dt>
  233. <dd>
  234. Set the gid of a process identified by given pid.
  235. <h3>Parameters</h3>
  236. <ul>
  237. <li>
  238. gid: Number containing the Unix group id
  239. </li>
  240. </ul>
  241. <h3>Return values:</h3>
  242. <ol>
  243. <li>Boolean indicating successful operation
  244. <li>String containing the error message if failed
  245. <li>Number containing the error code if failed
  246. </ol>
  247. </dd>
  248. <dt><a name="process.setuser"></a><strong>setuser</strong>&nbsp;(uid)</dt>
  249. <dd>
  250. Set the uid of a process identified by given pid.
  251. <h3>Parameters</h3>
  252. <ul>
  253. <li>
  254. uid: Number containing the Unix user id
  255. </li>
  256. </ul>
  257. <h3>Return values:</h3>
  258. <ol>
  259. <li>Boolean indicating successful operation
  260. <li>String containing the error message if failed
  261. <li>Number containing the error code if failed
  262. </ol>
  263. </dd>
  264. <dt><a name="process.signal"></a><strong>signal</strong>&nbsp;(pid, sig)</dt>
  265. <dd>
  266. Send a signal to a process identified by given pid.
  267. <h3>Parameters</h3>
  268. <ul>
  269. <li>
  270. pid: Number containing the process id
  271. </li>
  272. <li>
  273. sig: Signal to send (default: 15 [SIGTERM])
  274. </li>
  275. </ul>
  276. <h3>Return values:</h3>
  277. <ol>
  278. <li>Boolean indicating successful operation
  279. <li>Number containing the error code if failed
  280. </ol>
  281. </dd>
  282. </dl>
  283. </div> <!-- id="content" -->
  284. </div> <!-- id="main" -->
  285. <div id="about">
  286. <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>
  287. </div> <!-- id="about" -->
  288. </div> <!-- id="container" -->
  289. </body>
  290. </html>