Forrest logo
back to the disown tool

disown:tldr:bb417

disown: Disown the current job.
$ disown
try on your machine

The disown command is used in Unix-like operating systems to detach a currently running job from the shell. When a process is associated with a shell, it by default receives signals from the shell and is terminated when the shell is terminated. However, using the disown command allows a process to continue running even after the shell has been terminated.

The syntax of the disown command is:

disown [options] [job-spec]

Here, the job-spec refers to the job ID or process ID of the running job that you want to disown. If no job-spec is provided, the most recent background process started by the shell is disowned.

The disown command takes the following options:

  • -h or --help: displays a help message explaining the usage of the command.
  • -a or --all: disowns all running jobs.
  • -r or --remove: removes the specified jobs from the job table, effectively disowning them.

Once a job is disowned, it no longer belongs to the shell's job table and is not associated with it. This means that it won't receive any signals from the shell, including the SIGHUP signal sent when the shell terminates. The job can still continue running in the background, interacting with the system independently.

Note that disowning a job does not change its process group ID, so it may still be affected by signals sent to its process group. However, it won't be affected by signals specifically directed at the shell process group.

The disown command is useful when you want to detach a running process from the shell, allowing it to run independently even after you logout or close your terminal session.

This explanation was created by an AI. In most cases those are correct. But please always be careful and never run a command you are not sure if it is safe.
back to the disown tool