Sponsored Content
Top Forums Shell Programming and Scripting ksh behavior in scripts spawned w/nohup Post 303013606 by safedba on Saturday 24th of February 2018 08:14:28 AM
Old 02-24-2018
Quote:
Originally Posted by Peasant
Why use nohup ?
Why generate scripts from scripts ?

A simple while loop reading one configuration file in one script should

Spawn the required rman backup processes in background.
After the while loop has finished (spawned the processes), using wait, wait for those to finish.
After that line, a invoke a backup to tape.

This is most rudimentary, and it will not check success of background processes.
But the code you posted only counts processes, so i guess that is not the requirement.

As i see it, you wish your program to know if the processes which backup database on some filesystem are done or do not exist anymore, then issue a tape backup on that filesystem.

Is this correct ?

Regards
Peasant.

That's an excellent suggestion. I'm already using a wait. I'll try that monday. That would simplify things. Oh, and the scripts spawned check their own success by checking the logs they've produced, grepping for errors and emailing a success or failure message. The only failures I've run into of late is with netbackup's media manager hiccoughing and trying on a second channel. Since we use ASM, we can only push to netbackup, the people here didn't want to get the zfs backup appliance and there's no nfs mount which can handle the backups not to mention the 1gb pipe we have to back up tens of terabytes of data. So I'm having to use a single channel per node to back up to asm, compress this and then push to netbackup. If I ramp up 8 channels per node I end up creating hundreds of pieces in backup sets and then netbackup's media manager treats each piece as a separate job (no multiplexing this way) and there's the positioning/repositioning which greatly slows down the backup to tape (which is the biggest choke point). ....I added that FYI as a background story...

Last edited by safedba; 02-24-2018 at 09:20 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Strange behavior from 'read' statements. (ksh - but could be same on other shells)

I'm getting rather frustrated with an interactive script I'm writing. The script is divided up, with section for setting variable at the top, then functions (which make up most of the script) then basically a line at the end which calls the first function- the program moves between the... (5 Replies)
Discussion started by: alexop
5 Replies

2. UNIX for Advanced & Expert Users

kill scripts which are started using nohup

i have scipt which is calling some other scripts and some built-in utilities like SED, find etc.. i started this script using nohup (e.g: nohup scriptname &) now i want to kill this script and all the child processes of this script. the problem is, process id of child processes are... (4 Replies)
Discussion started by: gfhgfnhhn
4 Replies

3. UNIX for Advanced & Expert Users

Find the process was run using nohup or ksh.

Hi, I want to write a script which should be run only on foreground. Is there any way that the script can check itself whether it was run using nohup or ksh and if the user runs the script using nohup then it should prompt the user to run it using ksh? If (The user triggers the script using... (4 Replies)
Discussion started by: RRVARMA
4 Replies

4. Shell Programming and Scripting

Ksh Associating scripts

Im writing a script in the Ksh, as the title suggests. OK so im sincerely tring to be lazy. Im trying to make a script that will use another file as a sort of variable library So basically i dont need to include the variables themselves, just want to make a reference to the file, so the... (2 Replies)
Discussion started by: Demon002
2 Replies

5. Shell Programming and Scripting

KSH script to run other ksh scripts and output it to a file and/or email

Hi I am new to this Scripting process and would like to know How can i write a ksh script that will call other ksh scripts and write the output to a file and/or email. For example ------- Script ABC ------- a.ksh b.ksh c.ksh I need to call all three scripts execute them and... (2 Replies)
Discussion started by: pacifican
2 Replies

6. Shell Programming and Scripting

ksh behavior change on RHEL5

I recently patched a RHEL5 host from 5.2 to 5.5. There are some scripts that simply do a ps and grep to check for itself before proceeding. I personally don't like the way the scripts are written and would have done it differently. Before I can proceed with patching the production servers, I... (12 Replies)
Discussion started by: bwhitehd
12 Replies

7. Shell Programming and Scripting

Behavior of Unix in calling 2 scripts simultaneously

Hi, I wanted to know the exact behavior of the shell scripts in the below scenario. I have 2 scripts - a.ksh and b.ksh Both these scripts call a 3rd script xyz.ksh. What will happen if both a.ksh and b.ksh run at the same time? What will happen if a.ksh starts 2-3 seconds before b.ksh?... (3 Replies)
Discussion started by: aster007
3 Replies

8. Shell Programming and Scripting

Process behavior different when spawned from single terminal

So this one just plain confuses me. I have a bunch of somewhat CPU intensive processes that all communicate using a shared memory region. Some of these programs are threaded and some also change the scheduling to FIFO or round robin. The good news is that everything works as long as I spawn... (3 Replies)
Discussion started by: talkingfennel
3 Replies

9. Shell Programming and Scripting

KSH - How to call different scripts from master scripts based on a column in an Oracle table

Dear Members, I have a table REQUESTS in Oracle which has an attribute REQUEST_ACTION. The entries in REQUEST_ACTION are like, ME, MD, ND, NE etc. I would like to create a script which will will call other scripts based on the request action. Can we directly read from the REQUEST_ACTION... (2 Replies)
Discussion started by: Yoodit
2 Replies

10. Shell Programming and Scripting

can a nohup'ed ksh script interact with user

I have a long running ksh script that I need to run with "nohup" in the backgound which is all well and good but at the very start of the script it needes to output to the screen to query the user and accept a response before continuing. Any thoughts on how to accomplish this other than... (11 Replies)
Discussion started by: twk
11 Replies
nohup(1)							   User Commands							  nohup(1)

NAME
nohup - run a command immune to hangups SYNOPSIS
/usr/bin/nohup command [argument...] /usr/bin/nohup -p [-Fa] pid [pid...] /usr/bin/nohup -g [-Fa] gpid [gpid...] /usr/xpg4/bin/nohup command [argument...] DESCRIPTION
The nohup utility invokes the named command with the arguments supplied. When the command is invoked, nohup arranges for the SIGHUP signal to be ignored by the process. When invoked with the -p or -g flags, nohup arranges for processes already running as identified by a list of process IDs or a list of process group IDs to become immune to hangups. The nohup utility can be used when it is known that command will take a long time to run and the user wants to log out of the terminal. When a shell exits, the system sends its children SIGHUP signals, which by default cause them to be killed. All stopped, running, and back- ground jobs will ignore SIGHUP and continue running, if their invocation is preceded by the nohup command or if the process programmati- cally has chosen to ignore SIGHUP. /usr/bin/nohup Processes run by /usr/bin/nohup are immune to SIGHUP (hangup) and SIGQUIT (quit) signals. /usr/bin/nohup -p [-Fa] Processes specified by ID are made immune to SIGHUP and SIGQUIT, and all output to the controlling terminal is redirected to nohup.out. If -F is specified, nohup will force control of each process. If -a is specified, nohup will change the signal disposition of SIGHUP and SIGQUIT even if the process has installed a handler for either signal. /usr/bin/nohup -g [-Fa] Every process in the same process group as the processes specified by ID are made immune to SIGHUP and SIGQUIT, and all output to the controlling terminal is redirected to nohup.out. If -F is specified, nohup will force control of each process. If -a is specified, nohup will change the signal disposition of SIGHUP and SIGQUIT even if the process has installed a handler for either signal. /usr/xpg4/bin/nohup Processes run by /usr/xpg4/bin/nohup are immune to SIGHUP. The nohup utility does not arrange to make processes immune to a SIGTERM (terminate) signal, so unless they arrange to be immune to SIGTERM or the shell makes them immune to SIGTERM, they will receive it. If nohup.out is not writable in the current directory, output is redirected to $HOME/nohup.out. If a file is created, the file will have read and write permission (600, see chmod(1)). If the standard error is a terminal, it is redirected to the standard output, oth- erwise it is not redirected. The priority of the process run by nohup is not altered. OPTIONS
The following options are supported: -a Always changes the signal disposition of target processes. This option is valid only when specified with -p or -g. -F Force. Grabs the target processes even if another process has control. This option is valid only when specified with -p or -g. -g Operates on a list of process groups. This option is not valid with -p. -p Operates on a list of processes. This option is not valid with -g. OPERANDS
The following operands are supported: pid A decimal process ID to be manipulated by nohup -p. pgid A decimal process group ID to be manipulated by nohup -g. command The name of a command that is to be invoked. If the command operand names any of the special shell_builtins(1) utilities, the results are undefined. argument Any string to be supplied as an argument when invoking the command operand. EXAMPLES
Example 1: Applying nohup to pipelines or command lists It is frequently desirable to apply nohup to pipelines or lists of commands. This can be done only by placing pipelines and command lists in a single file, called a shell script. One can then issue: example$ nohup sh file and the nohup applies to everything in file. If the shell script file is to be executed often, then the need to type sh can be eliminated by giving file execute permission. Add an ampersand and the contents of file are run in the background with interrupts also ignored (see sh(1)): example$ nohup file & Example 2: Applying nohup -p to a process example$ long_running_command & example$ nohup -p `pgrep long_running_command` Example 3: Applying nohup -g to a process group example$ make & example$ ps -o sid -p $$ SID 81079 example$ nohup -g `pgrep -s 81079 make` ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of nohup: LANG, LC_ALL, LC_CTYPE, LC_MES- SAGES, PATH, NLSPATH, and PATH. HOME Determine the path name of the user's home directory: if the output file nohup.out cannot be created in the current directory, the nohup command will use the directory named by HOME to create the file. EXIT STATUS
The following exit values are returned: 126 command was found but could not be invoked. 127 An error occurred in nohup, or command could not be found Otherwise, the exit values of nohup will be those of the command operand. FILES
nohup.out The output file of the nohup execution if standard output is a terminal and if the current directory is writable. $HOME/nohup.out The output file of the nohup execution if standard output is a terminal and if the current directory is not writable. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: /usr/bin/nohup +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |CSI |enabled | +-----------------------------+-----------------------------+ /usr/xpg4/bin/nohup +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWxcu4 | +-----------------------------+-----------------------------+ |CSI |enabled | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
batch(1), chmod(1), csh(1), ksh(1), nice(1), pgrep(1), proc(1), ps(1), sh(1), shell_builtins(1), signal(3C), proc(4), attributes(5), envi- ron(5), standards(5) WARNINGS
If you are running the Korn shell (ksh(1)) as your login shell, and have nohup'ed jobs running when you attempt to log out, you will be warned with the message: You have jobs running. You will then need to log out a second time to actually log out. However, your background jobs will continue to run. NOTES
The C-shell (csh(1)) has a built-in command nohup that provides immunity from SIGHUP, but does not redirect output to nohup.out. Commands executed with `&' are automatically immune to HUP signals while in the background. nohup does not recognize command sequences. In the case of the following command, example$ nohup command1; command2 the nohup utility applies only to command1. The command, example$ nohup (command1; command2) is syntactically incorrect. SunOS 5.10 16 Nov 2001 nohup(1)
All times are GMT -4. The time now is 02:32 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy