01-27-2009
Running in the background (with & at the end) = spawning a child process that has current process as its parent. If you disconnect from the current shell (=hangup the parent) then you hangup the child as well.
If the child can handle this hang-up in some way - it could be possible to disconnect.
Usually you should not be able to disconnect while having any background/foreground jobs.
nohup runs a process that is somewhat separated from the current process (terminal). It is executed in a "deeper background". Thus you should be able to logout after starting such a process.
See "screen" - a very nice application
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I let a script A call script B.
I used
nohup a.sh &>/tmp/log &
In script A it calls B directly, without any redirecting or nohup or background.
However A is always "Stopped", while B is running correctly. Anybody knows why?
thanks!
-----Post Update-----
BTW, if I don't use nohup... (1 Reply)
Discussion started by: meili100
1 Replies
2. Shell Programming and Scripting
I let a script A call script B.
I used
nohup a.sh &>/tmp/log &
In script A it calls B directly, without any redirecting or nohup or background.
However A is always "Stopped", while B is running correctly. Anybody knows why?
thanks!
-----Post Update-----
BTW, if I don't use nohup... (4 Replies)
Discussion started by: meili100
4 Replies
3. UNIX for Dummies Questions & Answers
What I need to learn is how to use a script that launches background processes, and then kills those processes as needed.
The script successfully launches the script. But how do I check to see if the job exists before I kill it?
I know my problem is mostly failure to understand parameter... (4 Replies)
Discussion started by: holocene
4 Replies
4. Shell Programming and Scripting
Hi,
I am using net::ftp for transferring files now i am trying in the same Linux server as a result ftp is very fast but if the server is other location (remote) then the file transferred will be time consuming.
So i want try putting FTP part as a background process. I am unaware how to do... (5 Replies)
Discussion started by: vanitham
5 Replies
5. Shell Programming and Scripting
load_cursor_stmt()
{
ls /db/admin/ddl/rmn01000/load_cursor*.sql|while read file
do
echo "${file}"
`nohup db2 -tvf "$file" \&`
done
}Error:
-------
/admin/ddl/rmn01000/load_cursor5.sql /db/admin/ddl/rmn01000/load_cursor6.sql
+ read file
+ echo... (3 Replies)
Discussion started by: Hangman2
3 Replies
6. Programming
Hello,
I am trying to find a way to send several sequential commands via SSH to a remote box in a single command.
Thoughts so far:
1) Can I put them into a function and call the function within the ssh command?
e.g.
ssh <targetserver> $(functionx)
No - then it calls the function in... (4 Replies)
Discussion started by: doonan_79
4 Replies
7. Shell Programming and Scripting
Please I have run a background script using nohup please tell me way to stop this. Thanks in Advance (4 Replies)
Discussion started by: mumakhij
4 Replies
8. Shell Programming and Scripting
Hi All,
Can someone help me in knowing the exact difference between nohup and &.
The definition is quite clear but i only want to know if i run my job using & and in between i hung up my terminal. (10 Replies)
Discussion started by: Uinx_addic
10 Replies
9. UNIX for Dummies Questions & Answers
I have a question.
I will be running a background process using nohup and & command at end. I want to send output to a file say myprocess.out.
So will this command work?
nohup myprocess.ksh > myprocess.out &
Thanks in advance guys !!!
:) (3 Replies)
Discussion started by: vx04
3 Replies
10. Shell Programming and Scripting
Hi,
I have written a menu driven shell script in which as per the choice, I run the another script on background.
For eg:
1. get info
2)process info
3)modify info
All the operations have different scripts which i schedule in background using &.
However I wish to display the error... (0 Replies)
Discussion started by: ashima jain
0 Replies
fork(2) System Calls Manual fork(2)
Name
fork - create a new process
Syntax
#include <sys/types.h>
#include <unistd.h>
pid = fork()
pid_t pid;
Description
The system call causes creation of a new process. The new process (child process) is an exact copy of the calling process except for the
following:
o The child process has a unique process ID.
o The child process has a different parent process ID (that is, the process ID of the parent process).
o The child process has its own copy of the parent's descriptors. These descriptors reference the same underlying objects, so that, for
instance, file pointers in file objects are shared between the child and the parent, so that a on a descriptor in the child process
can affect a subsequent read or write by the parent. This descriptor copying is also used by the shell to establish standard input
and output for newly created processes as well as to set up pipes.
o The child processes resource utilizations are set to 0. For further information, see
Return Values
Upon successful completion, returns a value of 0 to the child process and returns the process ID of the child process to the parent
process. Otherwise, a value of -1 is returned to the parent process, no child process is created, and the global variable errno is set to
indicate the error.
Diagnostics
The system call fails and no child process are created under the following conditions:
[EAGAIN] The system-imposed limit {PROC_MAX} on the total number of processes under execution would be exceeded.
[EAGAIN] The system-imposed limit {CHILD_MAX} on the total number of processes under execution by a single user would be exceeded.
[ENOMEM] There is insufficient swap space for the new process.
See Also
execve(2), wait(2)
fork(2)