top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

Is there any way to kill the process which went to uninterruptible sleep (D) state??

+6 votes
1,880 views

Is there any way to kill the process which went to uninterruptible sleep (D) state due of some reason without rebooting machine??

I observed one of the process went to D-state during performance runs. Now, not able to kill the process using pkill or kill commands? Finally, we have to reboot the Linux machine.

Can anyone helps me out for this situation?? I don't want to reboot the machine.

We can kill the Zombie (Z) process but not able to kill process which is in D-state.

posted Feb 7, 2014 by Gurpreet Singh Matharoo

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button
check this article http://lwn.net/Articles/288056/

3 Answers

+3 votes
 
Best answer

Unfortunately you can not kill a process which went into uninterruptible sleep state (you need to be kernel hacker :) .

An uninterruptable process is a process which happens to be in a system call (kernel function) that cannot be interrupted by a signal. So there is no way by which you can issue a signal to the process and hence can not be killed.

answer Feb 7, 2014 by Salil Agrawal
+2 votes

Generally speaking, no, but I have sometimes seen that if a single thread of a multi-threaded process gets into this state, killing all the other threads before the one that is in D state sometimes manages to kill off the process (but it isn't very reliable).

Also, if systemd thinks that process is somehow part of something it desperately needs to wait for, you might not be able to shutdown cleanly either. Might want to use the -f option on systemctl poweroff to force a shutdown while still trying to get the local disks synced properly.

answer Feb 7, 2014 by anonymous
0 votes

Short answer: no.

Longer answer: D state is used when the process suspends waiting for an event which "has to" occur, typically something like a completion interrupt from a device (hence the 'D'). When the completion event doesn't occur, there's no way for the kernel to clean up. Reboot is the only thing you can do.

answer Feb 7, 2014 by anonymous
Similar Questions
+2 votes

In the ps results few of the processes are having process state as "D" . What does it mean ? Briefly explain different process states ?

+1 vote

As far as i know when a process is created, 8MB of stack is allocated to it.
Is it right?

If not then is there any fix size or not?

If yes then please answer and Help To solve this question also.

...