01-09-2017
Or to add a little to MadeInGermany's answer -
SIGKILL prevents normal process rundown. It can leave open files in bad condition, for example. You should use it only a last resort when you cannot force a process to exit. In some version of UNIX there are processes you cannot kill.
ps -u in Linux shows a column "stat".
Quote:
Status codes for Linux as of 2.6 kernel AFAIK.
Stat Meaning
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct (“zombie”) process, terminated but not reaped by its parent
D means the process cannot be killed while in the "D" status.
"Z" gets people upset completely. It means all of the processes' resources except the information kept in the kernel process header are gone. It will NOT do anything except reduce the number of total process slots by one. So if your system is configured for 65535 processes maximum, for example, then you just lost one until the "Z" process goes away. This is the result of poor programming practices - exiting and not waiting for child processes to terminate and be 'reaped'.
10 More Discussions You Might Find Interesting
1. Programming
Hello,
I would like to ask you for a little help with program I'm working on. I have problems with signals and synchronizing processes (I'm quite new to this part of programming).
Process "parent" creates new child process "child1" and this process creates new child process "child2". The... (2 Replies)
Discussion started by: Nightwright
2 Replies
2. UNIX for Advanced & Expert Users
Hi,
Ho do I differentiate system call from library call?
for example if I am using chmod , how do I find out if it is a system call or library call?
Thanks
Muru (2 Replies)
Discussion started by: muru
2 Replies
3. UNIX for Dummies Questions & Answers
Hell Sir,
This is chanikya
Is there any System call which behaves just like fork but i dont want to return back two times to the calling func.
In the following ex iam creating a child process in the called func but the ex prints two times IN MAIN.
ex :-
calling()
{
fork();
}
... (2 Replies)
Discussion started by: chanikya
2 Replies
4. UNIX for Advanced & Expert Users
Too generic to post elsewhere, too advanced for the newbie forums. There are some applications within the unix/linux milieu that understand signals such as SIGHUP, etc as instructions to perform administrative tasks (clearing information out of this, disconnect users, etc.) I was just wondering if... (2 Replies)
Discussion started by: thmnetwork
2 Replies
5. UNIX for Advanced & Expert Users
If I explicity ignore a signal (for example, SIGALRM), and this signal is generated during a blocking system call (for example, a recvfrom() ), what happens to the system call?
Does it abort, or does it remain blocked until its end? (2 Replies)
Discussion started by: hurricane
2 Replies
6. Shell Programming and Scripting
File1 --> into shell file for processing --> file2
I have finished the work on my shell processing script, but I need to call this from a form -->cgi-bin, have the form wait/process bar while processing occurs (5-10 seconds) and then have the shell exit gracefully while transferring to the new... (1 Reply)
Discussion started by: dba_frog
1 Replies
7. Shell Programming and Scripting
Hi,
I have two sh file. a.sh and b.sh b.sh is command and used by other sh's. I want to add below line to b.sh. When it is done with b.sh I want to continue to process a.sh. But when I use exit 0 in b.sh it is exit from b.sh and a.sh
How can I make it to continue to process?
a.sh ... (2 Replies)
Discussion started by: ctuncer
2 Replies
8. Shell Programming and Scripting
Guys, I have a problem :confused: and I need some help:
I've to process many huge zip files.
I'd code an application that receive the data from a pipe, so I can simple unzip the data and send it (via pipe) to my app.
Something like that:
gzip -dc <file> | app
The problem is: How can I... (7 Replies)
Discussion started by: Rkolbe
7 Replies
9. UNIX for Advanced & Expert Users
What will happen if signal comes while a system call is being executed?
How it will be handled? (1 Reply)
Discussion started by: rupeshkp728
1 Replies
10. Shell Programming and Scripting
I need to check my script and change to working mode. currently it was not sending the mail and exit without calling the second script.
I need to check the file is present ="/home/Rvtools/test.csv"
if this file not found after the time retry send mail file not found
If the file exit run the... (2 Replies)
Discussion started by: ranjancom2000
2 Replies
pause(2) System Calls Manual pause(2)
NAME
pause - suspend process until signal
SYNOPSIS
DESCRIPTION
suspends the calling process until it receives a signal. The signal must be one that is not currently set to be ignored or blocked
(masked) by the calling process.
If the signal causes termination of the calling process, does not return.
If the signal is by the calling process and control is returned from the signal-catching function (see signal(5)), the calling process
resumes execution from the point of suspension; with a return value of -1 from and set to
APPLICATION USAGE
Threads Considerations
Signal dispositions (such as catch/default/ignore) are shared by all threads in the process and blocked signal masks are maintained by each
thread. Therefore, the signals being waited for should not be ignored by the process or blocked by the calling thread.
will suspend only the calling thread until it receives a signal.
If other threads in the process do not block the signal, the signal may be delivered to another thread in the process and the thread in may
continue waiting. For this reason, the use of is recommended instead of for multi-threaded applications.
For more information regarding signals and threads, refer to signal(5).
SEE ALSO
alarm(2), kill(2), sigwait(2), wait(2), signal(5).
STANDARDS CONFORMANCE
pause(2)