<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://htyp.org/mw/index.php?action=history&amp;feed=atom&amp;title=PHP%2Flib%2Fproc</id>
	<title>PHP/lib/proc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://htyp.org/mw/index.php?action=history&amp;feed=atom&amp;title=PHP%2Flib%2Fproc"/>
	<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;action=history"/>
	<updated>2026-08-12T18:00:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;diff=29387&amp;oldid=prev</id>
		<title>Woozle at 00:28, 27 March 2026</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;diff=29387&amp;oldid=prev"/>
		<updated>2026-03-27T00:28:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:28, 27 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{fmt/title|PHP local process management}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{fmt/title|PHP local process management}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==About==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==About==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is probably the most basic of the local process-management libraries; I&#039;m not sure if that&#039;s a fair description because I haven&#039;t tried any of the other possibly-overlapping libraries yet (see [https://www.php.net/manual/en/refs.fileprocess.process.php Process Control Extensions]).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is probably the most basic of the local process-management libraries&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref name=popen /&amp;gt;&lt;/ins&gt;; I&#039;m not sure if that&#039;s a fair description because I haven&#039;t tried any of the other possibly-overlapping libraries yet (see [https://www.php.net/manual/en/refs.fileprocess.process.php Process Control Extensions]).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Model==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Model==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* A process is opened by executing a command via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_open}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-open.php php]&amp;lt;/sup&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* A process is opened by executing a command via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_open}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-open.php php]&amp;lt;/sup&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Links==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Links==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* php.net: [https://www.php.net/manual/en/book.exec.php System program execution]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* php.net: [https://www.php.net/manual/en/book.exec.php System program execution]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Footnote==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;references&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref name=popen&amp;gt;I&#039;m not counting &amp;lt;code&amp;gt;[https://www.php.net/manual/en/function.popen.php popen]()&amp;lt;/code&amp;gt; because that doesn&#039;t allow dialogue with the process; it just runs it and hands you a pipe-stream for either the process&#039;s output &#039;&#039;or&#039;&#039; your input to it.&amp;lt;/ref&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/references&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;diff=29386&amp;oldid=prev</id>
		<title>Woozle: Created page with &quot;{{fmt/title|PHP local process management}} ==About== This is probably the most basic of the local process-management libraries; I&#039;m not sure if that&#039;s a fair description becau...&quot;</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;diff=29386&amp;oldid=prev"/>
		<updated>2026-03-27T00:23:23Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{fmt/title|PHP local process management}} ==About== This is probably the most basic of the local process-management libraries; I&amp;#039;m not sure if that&amp;#039;s a fair description becau...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{fmt/title|PHP local process management}}&lt;br /&gt;
==About==&lt;br /&gt;
This is probably the most basic of the local process-management libraries; I&amp;#039;m not sure if that&amp;#039;s a fair description because I haven&amp;#039;t tried any of the other possibly-overlapping libraries yet (see [https://www.php.net/manual/en/refs.fileprocess.process.php Process Control Extensions]).&lt;br /&gt;
==Model==&lt;br /&gt;
* A process is opened by executing a command via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_open}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-open.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
* While it is open:&lt;br /&gt;
** it may send output through &amp;lt;code&amp;gt;stdout&amp;lt;/code&amp;gt; (information) or &amp;lt;code&amp;gt;stderr&amp;lt;/code&amp;gt; (error messages)&lt;br /&gt;
** it may receive input via &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;&lt;br /&gt;
** Its status may be obtained via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_get_status}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-get-status.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
** Its priority is modifiable via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_nice}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-nice.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
** It may be terminated via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_close}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-close.php php]&amp;lt;/sup&amp;gt; (which waits politely for the process to be done) or &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_​terminate}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-terminate.php php]&amp;lt;/sup&amp;gt; (which forces the issue).&lt;br /&gt;
&lt;br /&gt;
Unlike [[../SSH2/]], this library does not have a concept of opening a process without first executing a command; the command is the process. Each command opened with &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_open}}()&amp;lt;/code&amp;gt; is like a separate terminal session. In order to maintain any kind of persistent session-state across multiple commands, you have to first run some kind of wrapper-command like &amp;quot;{{l/cmd|bash}}&amp;quot; or &amp;quot;{{l/cmd|script}}&amp;quot; and then transmit additional commands &amp;#039;&amp;#039;to that wrapper-command&amp;#039;&amp;#039; via &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. (The meaning of those additional commands will, of course, depend entirely on how the wrapper-command interprets them.)&lt;br /&gt;
==Links==&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/book.exec.php System program execution]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
</feed>