<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vmssoftware.com/index.php?action=history&amp;feed=atom&amp;title=%24FORCEX</id>
	<title>$FORCEX - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vmssoftware.com/index.php?action=history&amp;feed=atom&amp;title=%24FORCEX"/>
	<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=$FORCEX&amp;action=history"/>
	<updated>2026-04-30T10:03:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=$FORCEX&amp;diff=2658&amp;oldid=prev</id>
		<title>Ambiguous column name: Remove typo</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=$FORCEX&amp;diff=2658&amp;oldid=prev"/>
		<updated>2024-12-11T09:31:37Z</updated>

		<summary type="html">&lt;p&gt;Remove typo&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 09:31, 11 December 2024&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-l44&quot;&gt;Line 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 44:&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;{{SyservArgument|cond_value|longword (unsigned)|read only|by value}}&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;{{SyservArgument|cond_value|longword (unsigned)|read only|by value}}&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;br&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;br&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;Completion code value to be used as the exit parameter. The code argument is a longword containing this value. If you do not specify the code argument, the value 0 is passed as the completion &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;codeю&lt;/del&gt;&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;Completion code value to be used as the exit parameter. The code argument is a longword containing this value. If you do not specify the code argument, the value 0 is passed as the completion &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;code.&lt;/ins&gt;&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;br&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;br&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;br&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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ambiguous column name</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=$FORCEX&amp;diff=1440&amp;oldid=prev</id>
		<title>Jane.doe: Created page with &quot;&#039;&#039;&#039;SYS$FORCEX&#039;&#039;&#039;, or &#039;&#039;&#039;Force Exit&#039;&#039;&#039;, is a system service that causes an Exit ($EXIT) service call to be issued on behalf of a specified process.  =Descrip...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=$FORCEX&amp;diff=1440&amp;oldid=prev"/>
		<updated>2019-11-14T07:48:18Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;SYS$FORCEX&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;Force Exit&amp;#039;&amp;#039;&amp;#039;, is a &lt;a href=&quot;/System_Service&quot; title=&quot;System Service&quot;&gt;system service&lt;/a&gt; that causes an Exit ($EXIT) service call to be issued on behalf of a specified process.  =Descrip...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;SYS$FORCEX&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;Force Exit&amp;#039;&amp;#039;&amp;#039;, is a [[System Service|system service]] that causes an Exit ($EXIT) service call to be issued on behalf of a specified process.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
The Force Exit service causes an Exit service call to be issued on behalf of a specified process.&lt;br /&gt;
&lt;br /&gt;
If you specify neither the [[#pidadr|pidadr]] nor the [[#prcnam|prcnam]] argument, the caller is forced to exit and control is not returned.&lt;br /&gt;
&lt;br /&gt;
If the longword at address [[#pidadr|pidadr]] is 0, the PID of the target process is returned.&lt;br /&gt;
&lt;br /&gt;
The Force Exit system service requires system dynamic memory.&lt;br /&gt;
&lt;br /&gt;
The image executing in the target process follows normal exit procedures. For example, if any exit handlers have been specified, they gain control before the actual exit occurs. Use the [[$DELPRC|Delete Process ($DELPRC) service]] if you do not want a normal exit.&lt;br /&gt;
&lt;br /&gt;
When a forced exit is requested for a process, a user-mode asynchronous system trap (AST) is queued for the target process. The AST routine causes the $EXIT service call to be issued by the target process. Because the AST mechanism is used, user mode ASTs must be enabled for the target process, or no exit occurs until ASTs are reenabled. Thus, for example, a suspended process cannot be stopped by $FORCEX. The process that calls $FORCEX receives no notification that the exit is not being performed.&lt;br /&gt;
&lt;br /&gt;
If an exit handler resumes normal processing, the process will not exit. In particular, if the program is written in Ada and there is a task within the program that will not terminate, the program will not exit.&lt;br /&gt;
&lt;br /&gt;
The $FORCEX service completes successfully if a force exit request is already in effect for the target process but the exit is not yet completed.&lt;br /&gt;
&lt;br /&gt;
=Syntax=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;SYS$FORCEX [&amp;lt;/nowiki&amp;gt;[[#pidadr|pidadr]]&amp;lt;nowiki&amp;gt;] ,[&amp;lt;/nowiki&amp;gt;[[#prcnam|prcnam]]&amp;lt;nowiki&amp;gt;] ,[&amp;lt;/nowiki&amp;gt;[[#code|code]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;C Prototype&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;int sys$forcex (unsigned int *pidadr, void *prcnam, unsigned int code);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Arguments=&lt;br /&gt;
==pidadr==&lt;br /&gt;
{{SyservArgument|process_id|longword (unsigned)|modify|by reference}}&lt;br /&gt;
&lt;br /&gt;
[[PID|Process identification (PID)]] of the process to be forced to exit. The pidadr argument is the address of a longword containing the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the [[Cluster|OpenVMS Cluster system]].&lt;br /&gt;
&lt;br /&gt;
The pidadr argument is optional but must be specified if the process that is to be forced to exit is not in the same [[UIC]] group as the calling process.&lt;br /&gt;
&lt;br /&gt;
==prcnam==&lt;br /&gt;
{{SyservArgument|process_name|character-coded text string|read only|by descriptor–fixed-length string descriptor}}&lt;br /&gt;
&lt;br /&gt;
Process name of the [[Process|process]] that is to be forced to exit. The prcnam argument is the address of a character string descriptor pointing to the process name string. A process running on the local node can be identified with a 1- to 15-character string. To identify a process on a particular node in a [[Cluster|cluster]], specify the full process name, which includes the node name as well as the process name. The full process name can contain up to 23 characters.&lt;br /&gt;
&lt;br /&gt;
The prcnam argument can be used only on behalf of processes in the same [[UIC]] group as the calling process. To force processes in other groups to exit, you must specify the [[#pidadr|pidadr]] argument. This restriction exists because the operating system interprets the UIC group number of the calling process as part of the specified process name; the names of processes are unique to UIC groups.&lt;br /&gt;
&lt;br /&gt;
==code==&lt;br /&gt;
{{SyservArgument|cond_value|longword (unsigned)|read only|by value}}&lt;br /&gt;
&lt;br /&gt;
Completion code value to be used as the exit parameter. The code argument is a longword containing this value. If you do not specify the code argument, the value 0 is passed as the completion codeю&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Condition Values Returned=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;col&amp;quot; | Value&lt;br /&gt;
! colspan=&amp;quot;col&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| SS$_NORMAL&lt;br /&gt;
| The service completed successfully.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_ACCVIO&lt;br /&gt;
| The item list cannot be read by the caller, or the buffer length or buffer cannot be written by the caller.&lt;br /&gt;
|- &lt;br /&gt;
| SS$_INCOMPAT&lt;br /&gt;
| The remote node is running an incompatible version of the operating system.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_INSFMEM&lt;br /&gt;
| The system dynamic memory is insufficient for the operation.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_IVLOGNAM&lt;br /&gt;
| The process name string has a length equal to 0 or greater than 15.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_NONEXPR&lt;br /&gt;
| The specified process does not exist, or an invalid process identification was specified.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_NOPRIV&lt;br /&gt;
| The process does not have the privilege to obtain information about the specified process.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_NOSUCHNODE&lt;br /&gt;
| The specified node is not currently a member of the cluster.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_REMRSRC&lt;br /&gt;
| The remote node has insufficient resources to respond to the request. (Bring this error to theattention of your system manager.)&lt;br /&gt;
|-&lt;br /&gt;
| SS$_UNREACHABLE&lt;br /&gt;
| The remote node is a member of the cluster but is not accepting requests. This is normal for a brief period early in the system boot process.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Privileges Required=&lt;br /&gt;
Depending on the operation, the calling process might need a certain privilege to use $FORCEX:&lt;br /&gt;
* You need GROUP privilege to force an exit for a process in the same group that does not have the same UIC as the calling process.&lt;br /&gt;
* You need WORLD privilege to force an exit for any process in the system.&lt;br /&gt;
&lt;br /&gt;
=Quota Required=&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[$CANEXH]]&lt;br /&gt;
* [[$CREPRC]]&lt;br /&gt;
* [[$DCLEXH]]&lt;br /&gt;
* [[$DELPRC]]&lt;br /&gt;
* [[$EXIT]]&lt;br /&gt;
* [[$GETJPI]]&lt;br /&gt;
* [[$GETJPIW]]&lt;br /&gt;
* [[$HIBER]]&lt;br /&gt;
* [[$PROCESS_SCAN]]&lt;br /&gt;
* [[$RESUME]]&lt;br /&gt;
* [[$SETPRI]]&lt;br /&gt;
* [[$SETPRN]]&lt;br /&gt;
* [[$SETPRV]]&lt;br /&gt;
* [[$SETRWM]]&lt;br /&gt;
* [[$SUSPND]]&lt;br /&gt;
* [[$WAKE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:System Services]]&lt;/div&gt;</summary>
		<author><name>Jane.doe</name></author>
	</entry>
</feed>