|-a||When run by an unprivileged user, processes that belong to other users are quietly ignored. In all mode, this internal filter is disabled. It may be used in conjunction with the -n flag to display a set of processes that match a specified criteria. This flag has no effect for the super-user.|
|-f||In fast mode, the machine-dependent code responsible for reading processes is allowed to make decisions to improve speed at the expense of error reporting (e.g. commands may not be displayed). This option mainly exists to aid in killing runaway processes on operating systems with complicated virtual memory designs.|
|-i||In interactive mode, the user is prompted with each process that is a candidate for action. Responding y will carry out the stated action. Also, a ^D at this prompt causes skill or snice to exit immediately.|
|-n||Display process ids but do not act on them.|
In verbose mode, the id of each process successfully acted
upon is displayed. Verbose mode may be enabled by default
by setting the "SKILL_VERBOSE" environment variable.
Alternately, when this is the only argument, version information is displayed and the program exits.
|-w||Display warning messages for unreachable processes.|
Unprivileged users can only change their own processes so they need not specify their user name as part of the argument list. On the other hand, the super-user should be more careful (e.g. the command snice -5 vi will change the priority of every vi(1) process on the system).
Since skill and snice categorize their arguments, there is a chance that they will do so incorrectly (e.g. a system command is also a user name). Both programs try to match an argument with a tty, a user name, and a process id, before classifying it as a command. To override this, an argument can be forced to a particular type by preceding it with -c (command), -u (user), -t (tty), or -p (process id). As a special case, a question mark (?) is categorized as a tty, and will match processes without controlling ttys.
When targeting processes by command name, both skill and snice use the actual name of the binary (i.e. that which is used for accounting purposes). Otherwise, as processes are permitted to change their argument vector (specifically argv), an errant program could continually change its name to avoid being acted upon. When targeting a process that has changed its name, use the -nv options to see its actual name. Command names may be specified using regular expressions by enclosing them in forward slashes. For example, skill -KILL /d$/ will send the kill signal to processes with names ending in "d".
Process ids are not known beforehand, so both kernel memory and the swap device must be searched for the required information. Alternately, on some systems, the "/proc" file system is examined. When a process fitting each category is discovered, it is immediately acted upon (unless running in interactive or display-only mode). Processes must belong to the current user unless said user is the super-user. Neither program will ever act on itself, but everything else is fair game.
Exit status is normally 0; if the user makes a mistake, 1 is returned. If a system error occurs, exit status is 2.
/vmunix system name list
/dev/mem physical memory
/dev/kmem kernel virtual memory
/dev/drum swap device
/proc process file system
/dev searched to map ttys into device numbers
kill(1), nice(1), priocntl(1), renice(1), ps(1),
kill(2), setpriority(2), signal(2), regex(3), proc(4)
David Sharnoff Greg Earle Christos Zoulas
Gorodecki Tom Mike Hibler Ric Anderson
Chuck L Blake Lee Duncan Allan E Johannesen
Michael Smith Aaron Denney Simon Burge
Things change while these programs execute, occasionally processes will be missed (the -w flag displays these).
Systems generally truncate command names to an OS-dependent size. To target commands with long names, specify the truncated name or use a regular expression.
On some operating systems, these programs are unable to investigate processes belonging to other users. While not a problem, this fact is reflected in the "(but N could not be checked)" notice, which follows the "no matching processes" message.
|SKILL (1)||April 6, 2005|