I don't know about a new stdout, and this may be over simplified, but it may be the single > that may be overwriting the previous log entries. You could try
Code:
startApp arg1 arg2 >> SOME_FILE
This could easily be debugged by using
Code:
startApp arg1 arg2 | tee SOME_FILE
If your log ends up empty use
Code:
startApp arg1 arg2 | tee -a SOME_FILE
These will redirect the output to both stdout and the file. The difference is the "-a" appends the output. Same as the ">>" but echos to the screen as well.
Judging by your example. Unless StartApp has something that forks to a background process you should not run into trouble with stdout.
The profile of the user is empty. Then before I run the script I want I run a parameter file that populates the variables for oracle.
ORACLE_HOME
ORACLE_BASE
ORACLE_SID
PATH
etc ...
But it seems that these variables are not making it to the shell I am in because when I do an echo on... (6 Replies)
Hi,
I would like to avoid re-directing line by line to a file.
What is the best way to re-direct STDOUT to a file in a subshell?
Thanks in advance.
Cheers
Vj (1 Reply)
I am calling a script from with another script and reading its output one line at a time (using <childscript> | while read line) in the parent script. If the output exceeds a predefined number of lines I want to kill the child shell from within the parent shell.
I decided to print the process ID... (2 Replies)
Hello,
I've a little problem with one of my ksh scripts and I manage to narrow it to the script here:
#!/bin/ksh
writeLog()
{
paramHandle="unknown"
OPTIND=1
while getopts :i: option $*
do
case $option in
i) paramHandle=${OPTARG} ;;
esac
done
echo... (2 Replies)
Hello
I read a lot of post related to this topic, but nothing helped me. :mad:
I'm running a ksh script with subshell what processing some ldap command. I need to check output for possible errors.
#!/bin/ksh
...
readinput < $QCHAT_INPUT |&
while read -p line
do
echo $line
... (3 Replies)
Hi All,
I would like to improve my bash scripting skill and found a problem which I do not understand. Task is to search and print files in directory (and subdirecories) which contains its own name. Files can have spaces in name.
This one works fine for files in main directory, but not for... (4 Replies)
People,
Here is my code
while read ln
do
xyz=$(echo $ln/$val1*100-100|bc -l|xargs printf "%1.0f\n")
if && ; then
iam="YELLOW"
fi
done <<< "$(grep "^" $TMPOUT)"
where $TMPOUT is a flat file which contains a set of values.
Whilst executing the above, I get an error... (4 Replies)
Hi,
the getopts doesnt seem to be working in the subshell of the ksh. when I echo $@ and $* from the subshell it shows nothing. even when I am capturing the parameters from the outer shell and passing while invoking the file then I am still not getting it properly.
the below code is in the... (9 Replies)
Hey I have a shell script that is like this:
(
echo "hi!"
##DO SOMETHING
)&(
sleep 5
##EMAIL RECIPIENTS VARs
ERECIPIENT3="email.com"
echo "Connection on status: is Down"|mail -s "Subject:" ${ERECIPIENT3}
kill -- -$$
)
This isn't working anyone know why? mail won't go out from... (12 Replies)
Hello,
As stated in the title, I do some hacked parallel processing by running multiple instances of bash scripts, each in their own subshell. The code looks like this,
# launch one batch-train script in background for each value in fold group list
for FOLD_GROUP in "${FOLD_GROUP_LIST}"
do
... (5 Replies)
Discussion started by: LMHmedchem
5 Replies
LEARN ABOUT NETBSD
xc_wait
XCALL(9) BSD Kernel Developer's Manual XCALL(9)NAME
xcall, xc_broadcast, xc_unicast, xc_wait -- cross-call interface
SYNOPSIS
#include <sys/xcall.h>
typedef void (*xcfunc_t)(void *, void *);
uint64_t
xc_broadcast(u_int flags, xcfunc_t func, void *arg1, void *arg2);
uint64_t
xc_unicast(u_int flags, xcfunc_t func, void *arg1, void *arg2, struct cpu_info *ci);
void
xc_wait(uint64_t where);
DESCRIPTION
The machine-independent xcall interface allows any CPU in the system to request that an arbitrary function be executed on any other CPU.
Sometimes it is necessary to modify hardware state that is tied directly to individual CPUs (such as a CPU's local timer), and these updates
can not be done remotely by another CPU. The LWP requesting the update may be unable to guarantee that it will be running on the CPU where
the update must occur, when the update occurs.
Additionally, it is sometimes necessary to modify per-CPU software state from a remote CPU. Where these update operations are so rare or the
access to the per-CPU data so frequent that the cost of using locking or atomic operations to provide coherency is prohibitive, another way
must be found.
Cross calls help to solve these types of problem. However, since this facility is heavyweight, it is expected that it will not be used
often.
xcall provides a mechanism for making ``low priority'' cross calls. The function to be executed runs on the remote CPU within a thread con-
text, and not from a software interrupt, so it can ensure that it is not interrupting other code running on the CPU, and so has exclusive
access to the CPU. Keep in mind that unless disabled, it may cause a kernel preemption.
xcall also provides a mechanism for making ``high priority'' cross calls. The function to be executed runs on the remote CPU within a
IPL_SOFTCLOCK software interrupt context, possibly interrupting other lower-priority code running on the CPU.
NOTES
Functions being called should be relatively lightweight. They may block on locks, but carefully and minimally, to not interfere with other
cross calls in the system.
FUNCTIONS
xc_broadcast(flags, func, arg1, arg2)
Call (*func)(arg1, arg2) on all CPUs in the system. Return a uint64_t ``ticket'' to xc_wait() on for the cross-call to complete.
flags should be XC_HIGHPRI for a "high priority" call, and 0 for a "low priority" call. xc_broadcast() should not be called from
interrupt context.
xc_unicast(flags, func, arg1, arg2, ci)
Like xc_broadcast(), but call (*func)() on only the CPU indicated by ci. xc_unicast() also returns a ``ticket''.
xc_wait(where)
Wait on the ``ticket'' returned by a prior xc_broadcast() or xc_unicast() for the corresponding cross-call to complete. xc_wait()
should be called from a thread context.
CODE REFERENCES
The xcall interface is implemented within the file sys/kern/subr_xcall.c.
SEE ALSO kpreempt(9), percpu(9)HISTORY
The xcall interface first appeared in NetBSD 5.0.
AUTHORS
Andrew Doran <ad@NetBSD.org>
BSD October 24, 2011 BSD