On Tue, May 25, 2010 at 9:42 AM, Les Mikesell lesmikesell@gmail.com wrote:
Bowie Bailey wrote:
Jatin Davey wrote:
Here is the script that i am trying to execute as a non-root user:
#!/bin/sh ps -C java -o thcount > /home/proc_threads/tempfile awk ' { total += $1 } END { print total } ' /home/proc_threads/tempfile
here is the output when i try to execute as a non-root user:
./javathreads: line 2: /home/proc_threads/tempfile: Permission denied awk: cmd. line:1: fatal: cannot open file `/home/proc_threads/tempfile' for reading (Permission denied)
The script is running, but the 'awk' line is failing to read /home/proc_threads/tempfile. What are the permissions on that file and directory?
$ ls -ld /home/proc_threads
$ ls -l /home/proc_threads/tempfile
Unless you have some other use for the contents of tempfile, you could use a pipeline instead to avoid any permissions issue.
If you don't mind, I would like to see the pipeline equivalent. :)
I used an array in a similar situation, (to avoid creating tmp file) but maybe that does not scale? For this case, maybe something like this? ...
#!/bin/sh OLD=$IFS IFS=$'\n' R_PS=($(ps -C java -o thcount)) IFS=$OLD # R_PS is now an array, each element is one line of the ps output
for (( i = 0; i < ${#R_PS[@]}; i++ )) ; do # Sum the desired arguments done echo $total
-Bob