slay
Kill or modify a process by name or ID (QNX OS)
Syntax:
slay [options]... process_name|process_id ...
Runs on:
QNX OS
Options:
- -signal_number
- A signal number specifying which signal to raise on the processes matching process_name or process_id. For a list of signal numbers, see <signal.h>.
- -f
- Force the action to be taken on all processes sharing the same process_name or ID. Normally, slay prompts for confirmation when more than one process bears the specified name or ID.
- -h
- Set a SIGSTOP signal on a process, effectively holding its execution.
- -m name|pid
- Restrict the match to only the process name or to only the process ID.
By default, slay matches both process IDs and names.
For example:
This command: Matches a process with: slay 1234 ID 1234 or the name 1234
slay -m pid 1234 ID 1234 slay -m name 1234 The name 1234
- -P prio[f|r|o]
- Set the priority of the processes matching process_name to
prio. Non-root users are limited to a
maximum priority of 63; root can specify a priority up to 255.
You can change the range of privileged priorities with the
-P option for
procnto.
The priority may be followed by f, r or o to change the scheduling policy to SCHED_FIFO, SCHED_RR or SCHED_OTHER, respectively.
Note:SCHED_OTHER is currently the same as SCHED_RR.If you specify -P without -T, slay sets the priority of all threads in the specified process or processes.
- -p
- Print the process IDs, in decimal, to standard output, with one process ID per line. The processes aren't slain.
- -q
- Query before dealing with the process, even if only one process is found with a matching name or ID (overrides option -f). This option is useful for viewing the other process information that slay presents.
- -Q
- Be quiet. This option is useful when you invoke slay from a C program.
- -S
- Don't kill processes that have child processes. You typically use this option in a shell command that shuts down shells on other devices. Setting this option prevents slay from killing shells that have other processes (such as editors) running. If you also specify -q, slay prompts for a forced kill even if the named process has child processes.
- -s signal_name
- The signal to send. This option causes the signal sig to be raised for the processes matching the process_name or ID.
- -T tid
- Apply the action to the thread with the given ID. You can use this option to direct a signal to a specific thread, or to change a thread's priority or runmask.
- -t ttyname
- Match only those processes whose name (or ID) is
process_name (process_id) and have ttyname
as the controlling terminal. If ttyname doesn't
begin with a slash (
/
), slay assumes that it starts with the /dev/ prefix. - -u
- Set a SIGCONT signal on a process. If execution of the process was being held by a SIGSTOP signal, execution begins where it left off. If the process hadn't previously had a SIGSTOP set upon it, the SIGCONT signal has no effect.
- -v
- Be verbose; display messages about processes being signaled.
- process_name
- The name of a process to operate on.
- process_id
- The ID of a process to operate on.
- Invalid:
slay -uv process
- Valid:
slay -u -v process
Description:
Use the slay utility to kill or modify a process by name or by ID. Process names are specified without the path. For example, let's say you have a process called /bin/sleep that you want to kill. Entering sleep as the process name is sufficient to allow slay to find and kill it.
There are many forms of this command. The simplest and most often used form is:
slay process_name|process_id
This command locates the process bearing the specified name or ID. If only one is found, a SIGTERM signal is set on it. If more than one process bears the specified name or ID, you're prompted for a yes/no response for each process. When each process is listed in this form, the process name, pid, and tty group/member numbers are also displayed to help you make a selection.
- To set a signal on a process you must either own the process or be logged in as root.
- The cleanup of the terminated process occurs at the priority of the thread that sent the signal.
- The slay utility uses the DCMD_PROC_STOP and DCMD_PROC_RUN devctl() commands when you use it to change a thread's priority or runmask. These commands are intended for debugging; don't use them in production systems.
Examples:
As root, change priority of the my_test process to 20:
slay -P 20 my_test
Exit status:
- 0
- No processes matched the supplied criteria, an error occurred, or the number of processes matched and acted upon was a multiple of 256.
- 1–128
- The number of processes matched and acted upon modulo 256 (e.g., a status of 1 could mean 1 process, 257 processes, 513 processes etc.).
- 129–160
- If the exit status was gleaned through direct spawning, this is the number of processes matched and acted upon modulo 256. If slay was run through the shell, this is either the number of processes matched and acted upon, or it indicates why slay died due to a signal (subtract 128 from the exit status to determine the signal number).
- 161–255
- The number of processes matched and acted upon, modulo 256.
Caveats:
The exit status of slay is nonstandard for historical reasons. We strongly recommend that you not use slay in any situation where the exit status is relied upon because the status is ambiguous in some circumstances.