Can someone offer some technical advice concerning an call to a IBM U2 (Universe) program?
When I use the following script from a unix shell, it works fine:
$ " xxx.sh "
(contains the following --->)
1. cd /links/ACCOUNT1
2. /shapps/ibm/uv/bin/uv "COUNT FILE1" /home /result.txt
3. cd -
with the above, I get:
$ cat results.txt
Accepting messages.
ACCOUNT1
Account 88987 records counted.
However, If I enter:
$ "nohup xxx.sh &" it bombs out:
$ nohup xxx.sh & [2] 21477
$ Sending output to nohup.out
[1] + Stopped (tty output) nohup xxx.sh &
This is the part that hangs:
" smintz 26850 26846 0 09:48:33 pts/tNb 0:00 /shapps/ibm/uv/bin/uv COUNT FILE1 "
Does it have somethig to do with (tty output)
$ Any Idea why I can successfully run this .sh from a unix line, but not in the background? Also, I have searched U2 documents on the correct method, cannot find anything, any hints where this is documented?
Thanks
1) programs that explicitly make use of "/dev/tty" are editors (like vi) or other apps that use libcurses ; Any other apps - ordinarilly - should write to stdout and/or stderr , and read from stdin , thus honoring the Unix programming paradigm as set forth by ken thompson since `the epoch'
-- if you don't recognize some of the info above , it'll be illustrative for you in your journey getting to know Unix better ... so not to worry about it now ;
The point here is that all programmers that stick to the model , can make use of all the power that Unix provides , without any undesired side effects ;
Explicitly , any program that works as below :
can be used without worries with all the rest of unix ;
but remember : programs that instead use "/dev/tty" as input and output ,
cannot make use of these facilities ;
** now let's get to nohup ... shall we ?
2) nohup was invented in order to keep a program running even if the user that started it has logged out ... otherwise the program would receive a NOHUP signal upon the user's logoff ;
that said , when a user runs :
he/she can harmlessly logout and rest assured that his/her program would keep running after logoff ;
obviously if the program has anything to tell , who would be there to hear , if the user bailed out ?
this is taken care of by means of the 'nohup.out' file (provided automatically by nohup) ;
the point here is : "any program subjet to nohup MUST adhere to the Unix I/O programing model" , that is , it's i/o MUST be "redirectable" as shown above ;
this is why nohup can't handle "/dev/tty" communication ;
and this is why a "good use" of nohup includes redirecting all i/o ;
** now explicitly - if you use it like :
than everything works fine ... provided that "prog" is a well-behaved application ;
*** now , with regard to shell scripts , just bear in mind that the shell itself is a programm , and "your application" (whatever it may be) is another application, and whoever goes into background MUST redirect its I/O , ok ?
just one last thing ... using ">" and "1>" has the same effect , so
has no meaning ... you will not have a duplicated output ;
-- hope this starts your clarification on the subjects ;
Hi,
I am a newbie to linux programming. I have implemented msgqueue in C.
msgrcv() call at the client end is as below:
msgrcv( msgqid, msgptr, msgsize, msgtype, 0 );
My program works fine when msgrcv () from /lib/libc.so.6 is called.
However it crashes when __libc_msgrcv() is called.
... (3 Replies)
Long story short: I'm working inside of a Unix SSH under a bash shell. I have to code a C program that generates a random number. Then I have to call the compiled C program with a Perl program to run the C program 20 times and put all the generated random #s into a text file, then print that text... (1 Reply)
Hi,
I have a shell script which connects to a database and fetches the count of the records from a table. I want to embed this whole script in a C program. Also the count fetched should be available in the C program for further usage.
Please let me know how this can be done.
Thanks (9 Replies)
Hi,
I have a shell script which connects to a database and fetches the count of the records from a table. I want to embed this whole script in a C program. Also the count fetched should be available in the C program for further usage.
Please let me know how this can be done.
Thanks
... (0 Replies)
On bash I run precompiled c Program as follows:
./create_cust 1 10000 US S > us_cust.csv
create_cust is a c program and requires 4 parameters.
I am redirecting the output of this program to csv file
I need to run this same program in perl
I am aware of exec command though not... (7 Replies)
Hi all,
I need to call some script (s1) from within my shell script (s2). s1 accepts parameters and I want to feed it with values of params from my script. I tried many things but none work (I am so much of a beginner), please help
one of my attempts :
.
.
.
param1="hehe"
param2="haha"
... (12 Replies)
Hi,
I have a K shell
a.ksh
function abc {
// Some logic
}
In
b.ksh
i have included the a.ksh
./a.ksh
I want to call the abc function from this b.ksh script.
Thanks
Vijay (2 Replies)
hi,
i have a script.sh on my machine and it used in the system
but my question is how can i know the program called this script.sh??
i.e. from where it called and execute??
Many thanks (1 Reply)
Hi,
I just tried to call a simple script from a pretty simple C program. I could not succeed :-( a message was thrown saying
"sh: line 1: "Script name with path": Permission denied"
The C program and shell script are below, both are in the same directory and shell script is given... (7 Replies)