Sponsored Content
Full Discussion: help running strace
Top Forums UNIX for Advanced & Expert Users help running strace Post 302089994 by Corona688 on Thursday 21st of September 2006 11:14:12 PM
Old 09-22-2006
strace has absolutely no idea how to set up pipes for anything, it only runs one process. The strace bit only goes as far as 'grep blah myfile', after which point the shell breaks your statement in half. sort is run by itself without the benefit of an strace.

How about:
Code:
strace grep blah myfile 2> grep.strace | strace sort 2> sort.strace

The relation between what's written into a pipe and what's read from a pipe is identical. You have
Code:
write(1, "blah blah and blah cause of blah"..., 85) = 85

on grep's side, and on sort's side you'll have something like
Code:
read( 0, "blah blah and blah cause of blah"..., 32768) = 85

The pipe waits until the writing process has written an '\n' somewhere, or the pipe's buffer is totally filled, before the other process stops waiting and gets to read any of it.

Last edited by Corona688; 09-22-2006 at 12:27 AM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

How to prevent job1 from running while job2 is running..

Hi, Please I need your expert advise on how to prevent/lock from execution job1 while job2 is still running in Unix... THanks:) (3 Replies)
Discussion started by: tikang
3 Replies

2. UNIX for Advanced & Expert Users

strace

Hi Gurus, I need to trace a sqlplus session using strace. Can someone please provide me the syntax. sorry was not able to figure out by reading the man page. :-( i tried to do as below but getting the error xt33db006/u1/app/oracle/product/10.2.0/asm_1$ strace -f sqlplus '/as sysdba'... (0 Replies)
Discussion started by: p4cldba
0 Replies

3. Solaris

Running from Shell Vs running from RC script

Hi, i have a script which need to do behave differently when run as a startup process from init.d/ rc2.d script and when run manually from shell. How do i distinguish whether my script is run by init process or by shell?? Will the command /proc/$$/psinfo | grep "myscript" work well???... (2 Replies)
Discussion started by: vickylife
2 Replies

4. UNIX for Advanced & Expert Users

ioctl : strace

Hi All, int ioctl(int d, int request, ...); Can somebody tell me how does ioctl decides the input parameter: "request". Sometimes, its SNDCTL_TMR_TIMEBASE or TCGETS or FIONREAD...etc. What is the pattern?? I am asking this coz my strace returns this: ... (1 Reply)
Discussion started by: angad.makkar
1 Replies

5. Shell Programming and Scripting

Running Total Running Wild

Hi. A shell scripting newbie here. I am trying to write a script that will create a running total of Sales, and increment a counter for each Sales entry, but when I executed the program it never stopped. counter=0 Sales=0 echo "enter sales price" read sales while do let counter=counter+1... (6 Replies)
Discussion started by: Ccccc
6 Replies

6. UNIX for Advanced & Expert Users

strace

Hi, does anyone know the equivalent command of the following in AIX : $ strace -tp 15033 Process 15033 attached - interrupt to quit 11:28:06 gettimeofday({1257766086, 104118}, NULL) = 0 11:28:06 getrusage(RUSAGE_SELF, {ru_utime={2270, 615813}, ru_stime={0, 634903}, ...}) = 0 Thank you (6 Replies)
Discussion started by: big123456
6 Replies

7. UNIX for Advanced & Expert Users

Need help on strace output

Hi All, Good day, need some help on strace result. We're encountering oracle Database server connection slowness (using sqlplus login to db server, there have 1 or 2 secs delay) we had generated strace and provide to oracle to investigate, and they told us it look like OS problem (Our OS is Red... (4 Replies)
Discussion started by: klng
4 Replies

8. Android

Strace help

I need to run and monitor applications on Android Emulator. I am using the strace utility to monitor system calls. Everytime to start strace i need to manually start the application , get the process Id of the application and then give it to strace to start logging all the system calls. So is... (20 Replies)
Discussion started by: far001han
20 Replies

9. Ubuntu

Running strace command

I want to run the strace -p xxxx -o in a script to monitor a process that hangs sometimes and requires a restart, my question is if strace is constantly running in the background will it chew up system resources and cause the system slowness? (3 Replies)
Discussion started by: wereyou
3 Replies

10. Red Hat

Strace rpm requirement for RHEL 5.9

I have requirement for strace utility rpm package for RHEL 5.9. I have made a google for last 1 hr. but did not find the required one. Can any one help me out to find out the compatible rpm package of strace for Redhat 5.9 version (I require 64 bit version). (7 Replies)
Discussion started by: Anjan Ganguly
7 Replies
SOCKDOWN(1)						      General Commands Manual						       SOCKDOWN(1)

NAME
sockdown - shutdown(2) a socket netpipes 4.2 SYNOPSIS
sockdown [ fd [how] ] DESCRIPTION
sockdown performs the shutdown(2) system call on one of its file descriptors specified by fd. The possible values for how are +----------+---------------------------------------------------------+ |writeonly | convert to write-only file descriptor | |0 | convert to write-only file descriptor | |writeonly | symbolic for same as above | |1 | convert to read-only file descriptor | |readonly | symbolic for same as above | |2 | complete shutdown. no more reads or writes are allowed | |totally | symbolic for same as above | +----------+---------------------------------------------------------+ The default fd is 1 (stdout) and the default how is 1. EXAMPLES
Imagine you have a machine that can perform a service (in this case conversion from ASCII to fancy postscript) : server$ faucet 3000 --in --out enscript -2rGhp - You may then connect to it with a hose. However, the first example enters deadlock : client$ hose server 3000 -in -out sh -c " cat blah.txt & cat > blah.ps " The enscript blocks waiting for input from the socket because not all of the client processes have exited. While the cat blah.txt is fin- ished, the cat > blah.ps is not, and will not be finished until the remote enscript process finishes writing. The enscript process will not finish writing until it is finished reading, but that client->server half of the socket is still open and will not be closed until all the client processes are done. The result is deadlock. So, we use sockdown to close half of the pipe client$ hose server 3000 -in -out sh -c " ( cat blah.txt ; sockdown ) & cat > blah.ps " This way when the cat blah.txt is done, half of the socket is shut down and the remote enscript process runs out of input, causing it to flush its output and exit, so eventually the whole mess finishes cleanly. Note: the & on the hose is necessary to prevent another deadlock. If we simply used the ; to serialize the two cat processes it is possi- ble that the enscript would fill up its write buffer before the first cat was done causing both processes to block and preventing the sec- ond cat from draining the pipe. Of course, that idiomatic usage of hose is so useful that it is a special form: client$ hose server 3000 -slave < blah.txt > blah.ps Ian Stirling <root@mauve.demon.co.uk> informs me that sockdown can be used in Linux's /proc/pid/fd/ directories to tear down hung network connections. I have since used this myself on a wedged MOMspider. To try this, you have to know the PID of the program and the file descriptor of the wedged socket (can sometimes be found by running strace and see if the program is stuck in a read(2) system call). If the PID is 991 and the socket's descriptor is 5, you do this as root: bash# sockdown 1 2 > /proc/991/fd/5 ERRORS
Socket operation on non-socket Invalid argument (seen on Solaris) The fd you specified does not refer to a socket. This happens when you run sockdown by itself (it is unlikely that any of the file descriptors attached to an interactive shell are actually sockets) or if you goof up your faucet/hose command and forgot to dup(2) one of your descriptors. Bad file number You gave it a bad file number for fd. If you have enough skill to actually generate this error, you probably know what is wrong. If you encounter any other errors, clue me in. SEE ALSO
netpipes (1) faucet (1), hose (1), getpeername (1), socket (2), shutdown (2), NOTES
Any normal human would assume a program this simple has to be bug free, but I am an experienced programmer. Just avoid doing anything funky like passing sockdown strings and it should serve you well. You should not have to pass it any arguments unless you are doing something fairly funky. Perhaps I should ditch the shutdown -a semantics on hose since a sockdown 1 2 would do the job. CREDITS
Ian Stirling <root@mauve.demon.co.uk>, for the idea of using this program in /proc on a Linux machine. COPYRIGHT
Copyright (C) 1995-1998 Robert Forsman This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MER- CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. AUTHOR
Robert Forsman thoth@purplefrog.com Purple Frog Software http://web.purplefrog.com/~thoth/ July 7, 1998 SOCKDOWN(1)
All times are GMT -4. The time now is 04:51 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy