I haven't yet come across an implementation of
nohup which knows a
-p option.
But then I don't know every flavour of Unix.
Usually nohup is only executed on startup of a command given as argument but cannot attach to a running process.
If you are running your job control in Bash then you could use the built-in
disown command like
Code:
$ echo $0
bash
$ sleep 600 &
[1] 5764
$ disown -h %1
Now you should be able to logout without the shell sending a SIGHUP to your disowned sleep job.
May I refer you to man bash:
Code:
disown [-ar] [-h] [jobspec ...]
Without options, each jobspec is removed from the table of
active jobs. If the -h option is given, each jobspec is not
removed from the table, but is marked so that SIGHUP is not sent
to the job if the shell receives a SIGHUP. If no jobspec is
present, and neither the -a nor the -r option is supplied, the
current job is used. If no jobspec is supplied, the -a option
means to remove or mark all jobs; the -r option without a job‐
spec argument restricts operation to running jobs. The return
value is 0 unless a jobspec does not specify a valid job.