03-26-2008
You use truss on the same command line where you give the command you want to study. Use -o to store the output in a file or you'll get a giant scroll of stuff on your screen that will be impossible to read. Like this:
truss -o mytruss.txt myscript.sh
Where myscript.sh is what you want to learn about and mytruss.txt is the textfile to store the output in. Then just read mytruss.txt.
Now, READING the output is a whole other thing. It is very complicated if you've never seen it. No simple tips I can give you, just take a look and see what you can figure out - google stuff that doesn't make sense.
For your specific questions:
To truss an already running process use the -p flag and give the PID of the process you want to study.
To see why it isn't opening a device I guess you'd look at the open and close statements to see what isn't matching or where it breaks down. Every time your process opens or closes a file truss will tell you about it, so you may see the spot of your script/command where you expect the device to open but no file open happens.
I'm not sure about using truss within a script - to use it on a script I'd simply use truss and run the script as the command to trace.
Last edited by rhfrommn; 03-26-2008 at 12:41 PM..
Reason: Add more info
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I'm a DBA so no abuse please! I've for 5 Oracle Forms processes that are spinning and am trying to find out if they're doing anything:
Running HPUX 11.11
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
9 ? 2735 oracle 241 20 24228K 16668K run 2607:29 84.92... (2 Replies)
Discussion started by: fraze
2 Replies
2. Solaris
moved to the Netwoking (0 Replies)
Discussion started by: gogogo
0 Replies
3. IP Networking
I have tried to analyze the log of truss shown below. I haven't found anything clear for me indicating the problem. The process is the server that accepts client connections. To establish the connection it starts the child thread then it should transfer data. In reality it gets only connection.... (1 Reply)
Discussion started by: gogogo
1 Replies
4. UNIX for Advanced & Expert Users
Hi,
We keep getting hanging Oracle process for our ETL. The dba's asked me to do o truss. All I see is pages and pages of the following,:cool:
pollsys(0xFFFFFFFF7FFF38C8, 1, 0xFFFFFFFF7FFF3800, 0x00000000) = 0
pollsys(0xFFFFFFFF7FFF38C8, 1, 0xFFFFFFFF7FFF3800, 0x00000000) = 0... (0 Replies)
Discussion started by: happyadm
0 Replies
5. Shell Programming and Scripting
Hi
I have to get redirect the truss ouput to file.
I am doing truss -p 12121 >> output.txt
But it still displays on the screen adn output.txt is empty
Can some help how to do this?
Thanks in advance
Ammu (1 Reply)
Discussion started by: ammu
1 Replies
6. Shell Programming and Scripting
i have to gather some info about a process and redirect it to a1.txt file. For this i m using truss command
truss -po a1.txt $PID_Detail
where $PID_Detail= 1482944 3362976
--------------------------------------------------------------------------
Below the script:
#!/bin/ksh
for i... (6 Replies)
Discussion started by: ali560045
6 Replies
7. AIX
Hello,
I'm using AIX 5.3.12.5 and trying to understand truss output.
I'm running a job with real time of 16 minutes but only 4 minutes of CPU time. I'm trying to understand what the process is doing.
I'm getting a lot of
kread,
kpread,
kwrite,
kpwrite...
localhost:~ x$ grep... (1 Reply)
Discussion started by: Kovacs
1 Replies
8. UNIX for Dummies Questions & Answers
Hi,
I want to trace a background java program which runs in infinite loop. I have used truss command for this.
But the program terminated after some hours with below truss output:
Received signal #1, SIGHUP, in lwp_cond_wait()
/1: siginfo: SIG#0
Please let me know what... (0 Replies)
Discussion started by: Hara Prasad
0 Replies
9. UNIX for Advanced & Expert Users
hi, anyone can help on this piece of truss output?
8094: 0.7028 write(4, 0x0043BE90, 236) = 236
8094: T S H \0\0\0EC020101\0\0\0\0\0\0\0\0\0 "02\0\0 303\0\0 I D
8094: \f %\0\0\0\0 2\0F67F\0\0\0\0 @06FFC99A ;
8094: L D6\0 303
8094: ... (6 Replies)
Discussion started by: ghostdog74
6 Replies
10. UNIX for Advanced & Expert Users
Hi,
I want to trace a background java program which runs in infinite loop. I have used truss command for this.
But the program terminated after some hours with below truss output:
Received signal #1, SIGHUP, in lwp_cond_wait()
/1: siginfo: SIG#0
Please let me know what... (5 Replies)
Discussion started by: Hara Prasad
5 Replies
LEARN ABOUT MOJAVE
opensnoop
opensnoop(1m) USER COMMANDS opensnoop(1m)
NAME
opensnoop - snoop file opens as they occur. Uses DTrace.
SYNOPSIS
opensnoop [-a|-A|-ceFghstvxZ] [-f pathname] [-n name] [-p PID]
DESCRIPTION
opensnoop tracks file opens. As a process issues a file open, details such as UID, PID and pathname are printed out.
The returned file descriptor is printed, a value of -1 indicates an error. This can be useful for troubleshooting to determine if applia-
cions are attempting to open files that do not exist.
Since this uses DTrace, only users with root privileges can run this command.
OPTIONS
-a print all data
-A dump all data, space delimited
-c print current working directory of process
-e print errno value
-F print the flags passed to open
-g print full command arguments
-s print start time, us
-t print user stack trace
-v print start time, string
-x only print failed opens
-Z print zonename
-f pathname
file pathname to snoop
-n name
process name to snoop
-p PID process ID to snoop
EXAMPLES
Default output, print file opens by process as they occur,
# opensnoop
Print human readable timestamps,
# opensnoop -v
See error codes,
# opensnoop -e
Snoop this file only,
# opensnoop -f /etc/passwd
FIELDS
ZONE Zone name
UID User ID
PID Process ID
PPID Parent Process ID
FD File Descriptor (-1 is error)
FLAGS Flags passed to open
ERR errno value (see /usr/include/sys/errno.h)
CWD current working directory of process
PATH pathname for file open
COMM command name for the process
ARGS argument listing for the process
TIME timestamp for the open event, us
STRTIME
timestamp for the open event, string
DOCUMENTATION
See the DTraceToolkit for further documentation under the Docs directory. The DTraceToolkit docs may include full worked examples with ver-
bose descriptions explaining the output.
EXIT
opensnoop will run forever until Ctrl-C is hit.
BUGS
occasionally the pathname for the file open cannot be read and the following error will be seen,
dtrace: error on enabled probe ID 6 (...): invalid address
this is normal behaviour.
AUTHOR
Brendan Gregg [Sydney, Australia]
SEE ALSO
dtrace(1M), truss(1)
version 1.60 Jan 12, 2006 opensnoop(1m)