[ILUG] bash: nohup can't see a function
Brian Foster
blf at blf.utvinternet.ie
Fri Jun 3 05:13:31 IST 2005
| Date: Thu, 2 Jun 2005 12:03:51 +0200
| From: "bryan ( admin at revoltingdigits.com)" <revoltingdigits at gmail.com>
|
| [ ... ] the email contains the following .,.....
|
| /usr/bin/nohup: line 79: exec: restartoraclegui: not found
nohup(1) exec(3)s things.
you cannot exec a function embedded in a script.
(you _could_ exec a function separated into its
own file, but such exec'ing is pointless.)
| Perhaps I am trying a completely wrong approach here,
probably.
| i also considered using this line
|
| then ( restartoraclegui | mail admin\@revoltingdigits.com -s "oracle gui restart" 2>&1 )
accomplishes nothing but adding confusion.
change the line to (I assume you have the args to
mail(1) in the correct order, albeit it does not
look quite right me?):
restartoraclegui 2>&1 | mail admin\@... -s "..."
(i.e., move the `2>&1' to a useful place and get
rid of the now-pointless backgrounding (`&')),
and then do the `nohup' and backgrounding when
you invoke the script:
nohup SCRIPT &
as a reminder, add a comment to that effect at
the top of the script. (you _could_ also detect
by a proxy test that this may not have been done
and issue an message; see test(1) `-t' operator.)
the above has the additional advantage the `mail' is
also `nohup'ed, so if it does happen to be SIGHUPed
you should still get e-mail. in the original,
whilst the Oracle stuff might complete even if
there is a SIGHUP (this is not clear, see below),
there would be no e-mail --- the `mail' would have
been killed.
because the `mail' would have been killed, it is
possible the Oracle stuff would not complete:
_if_ that stuff did any output to stdout (or stderr,
after you fix the redirection) after the SIGHUP and
death of `mail', they would get a "Broken pipe"
(SIGPIPE/EPIPE) and _also_ die.
cheers!
-blf-
--
Experienced (20+ yrs) kernel/software Eng: | Brian Foster Montpellier,
• Unix, embedded, &tc; • Linux; • doc; | blf at utvinternet.ie FRANCE
• IDL, automated testing, process, &tc. | Stop E$$o (ExxonMobile)!
Résumé (CV) http://www.blf.utvinternet.ie | http://www.stopesso.com
More information about the ILUG
mailing list