01-29-2002
Your ps output says that the process is waiting on the physio routine. That means it is doing a read or a write to disk and is waiting for it to complete. Unix will not allow the process to die until the i/o completes. This is how it fulfills its promise of atomic disk i/o. I would suspect a hardware error in combination with a disk driver with poor error handling. The other possibility is a pathetic disk driver.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I can kill running processes on my linux red hat system using ctrl-c but cannot do it from command line of another terminal using kill -2 pid. Although I can kill them from command line using kill -9 pid and other signals. I would like to do it using the kill -2 pid.
Thanks for your suggestions (6 Replies)
Discussion started by: bbhayana
6 Replies
2. Solaris
Dear All,
I have one doubt - when u use netstat -na | grep 8080 to know the status of 8080 ports.when it is listed someone is accessing the 8080 ports
like this
*.8080 *.* 0 0 64000 0 LISTEN
172.19.69.39.8080 172.19.50.20.1929 65535 ... (6 Replies)
Discussion started by: shanshine
6 Replies
3. Shell Programming and Scripting
Hi Friends,
I am new to this forum as well as new to shell scripting.
I have a problem here and i need someone to solve this.
Let us consider there are two processes(abc & def).There is a script which kills these two processes(i.e killtheprocess abc). Here abc is the argument .
There is a... (1 Reply)
Discussion started by: Prince89
1 Replies
4. UNIX for Dummies Questions & Answers
Hi,
First, I am running a scipt.While the script is running I realize that I dont want the script to be run so I am killing the script externally.Before the process gets terminated or killed it should delete all the temporary files created by the script.How to do this?Can anyone help me?
... (3 Replies)
Discussion started by: arthi
3 Replies
5. Shell Programming and Scripting
Hi all,
I have been searching all day for a nice solution to this problem.
I have three scripts. A start script, a child script and a stop script.
Script A (scripta.sh)
Its Child Script B (scriptb.sh)
Script C (kill_process.sh $PID)
Script A correctly traps the kill command sent from... (6 Replies)
Discussion started by: mark007
6 Replies
6. Shell Programming and Scripting
Hi friends,
i m in big trouble....
i have one script which connects two server ...like below..
script1.sh
-------------------------------------
bash test.sh &
eval x=$@
export x=`echo $x`
#echo $x
#
ssh user@8.2.5.6 bash /mbbv/location/script.sh $x|sed '/Binary file/d'... (1 Reply)
Discussion started by: Shahul
1 Replies
7. Shell Programming and Scripting
I had issues with processes locking up. This script checks for processes and kills them if they are older than a certain time.
Its uses some functions you'll need to define or remove, like slog() which I use for logging, and is_running() which checks if this script is already running so you can... (0 Replies)
Discussion started by: sukerman
0 Replies
8. UNIX for Advanced & Expert Users
UNIX Tutorial Five
% kill %jobnumber
Does that not work on a stopped process? I've tried to kill a stopped process and it is not working. Or do you need a certain type of shell for this to work? I don't see anything about this in my man pages. (3 Replies)
Discussion started by: cokedude
3 Replies
9. UNIX for Dummies Questions & Answers
I was just playing with the processes and suddenly a question striked my mind:
What will happen if we kill directly the shell process?? :rolleyes:
Do anyone know?
Will the system shutdown?
Or the system wont let it be killed? (5 Replies)
Discussion started by: paras.oriental
5 Replies
10. Shell Programming and Scripting
Hi ,
I have a list of application process id's.
Is there a way to kill all the process listed below using the script, except the once which are starting with " Genesis "
adm 1522 ABC_Process.tra
adm 1939 Genesis_Process.tra
adm 2729 Genesis_Archive.tra
adm 3259 xyz_Process.tra (5 Replies)
Discussion started by: murali1687
5 Replies
LEARN ABOUT DEBIAN
biodone
biodone(9F) Kernel Functions for Drivers biodone(9F)
NAME
biodone - release buffer after buffer I/O transfer and notify blocked threads
SYNOPSIS
#include <sys/types.h>
#include <sys/buf.h>
void biodone(struct buf *bp);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
bp Pointer to a buf(9S) structure.
DESCRIPTION
biodone() notifies blocked processes waiting for the I/O to complete, sets the B_DONE flag in the b_flags field of the buf(9S) structure,
and releases the buffer if the I/O is asynchronous. biodone() is called by either the driver interrupt or strategy(9E) routines when a buf-
fer I/O request is complete.
biodone() provides the capability to call a completion routine if bp describes a kernel buffer. The address of the routine is specified in
the b_iodone field of the buf(9S) structure.
If such a routine is specified, biodone() calls it and returns without performing any other actions. Otherwise, it performs the steps
above.
CONTEXT
biodone() can be called from user or interrupt context.
EXAMPLES
Generally, the first validation test performed by any block device strategy(9E) routine is a check for an end-of-file (EOF) condition. The
strategy(9E) routine is responsible for determining an EOF condition when the device is accessed directly. If a read(2) request is made
for one block beyond the limits of the device (line 10), it will report an EOF condition. Otherwise, if the request is outside the limits
of the device, the routine will report an error condition.
In either case, report the I/O operation as complete (line 27).
1 #define RAMDNBLK 1000 /* Number of blocks in RAM disk */
2 #define RAMDBSIZ 512 /* Number of bytes per block */
3 char ramdblks[RAMDNBLK][RAMDBSIZ]; /* Array containing RAM disk */
4
5 static int
6 ramdstrategy(struct buf *bp)
7 {
8 daddr_t blkno = bp->b_blkno; /* get block number */
9
10 if ((blkno < 0) || (blkno >= RAMDNBLK)) {
11 /*
12 * If requested block is outside RAM disk
13 * limits, test for EOF which could result
14 * from a direct (physio) request.
15 */
16 if ((blkno == RAMDNBLK) && (bp->b_flags & B_READ)) {
17 /*
18 * If read is for block beyond RAM disk
19 * limits, mark EOF condition.
20 */
21 bp->b_resid = bp->b_bcount; /* compute return value */
22
23 } else { /* I/O attempt is beyond */
24 bp->b_error = ENXIO; /* limits of RAM disk */
25 bp->b_flags |= B_ERROR; /* return error */
26 }
27 biodone(bp); /* mark I/O complete (B_DONE) */
28 /*
29 * Wake any processes awaiting this I/O
30 * or release buffer for asynchronous
31 * (B_ASYNC) request.
32 */
33 return(0);
34 }
...
SEE ALSO
read(2), strategy(9E), biowait(9F), ddi_add_intr(9F), delay(9F), timeout(9F), untimeout(9F), buf(9S)
Writing Device Drivers
WARNINGS
After calling biodone(), bp is no longer available to be referred to by the driver. If the driver makes any reference to bp after calling
biodone(), a panic may result.
NOTES
Drivers that use the b_iodone field of the buf(9S) structure to specify a substitute completion routine should save the value of b_iodone
before changing it, and then restore the old value before calling biodone() to release the buffer.
SunOS 5.10 23 Apr 1996 biodone(9F)