如何在后台运行 Linux 命令
原创怎样在后台运行 Linux 命令
在 Linux 系统中,后台运行命令是一种常见的操作,尤其是在需要执行长时间运行的任务或者不期望命令立即阻塞当前会话时。以下是一些在 Linux 后台运行命令的方法。
### 1. 使用 `&` 符号
最简洁的方法是在命令后面加上 `&` 符号。这样做会将命令放入后台执行,并且命令的进程ID(PID)会显示在终端上。
bash
command &
例如,要后台运行 `sleep` 命令,可以使用以下命令:
bash
sleep 1000 &
### 2. 使用 `nohup` 命令
`nohup` 命令允许你运行命令而不受 hangup 信号的影响,并且即使终端关闭,命令也会继续运行。
bash
nohup command &
例如,以下命令将 `sleep` 命令在后台运行,并且即使终端关闭,它也会继续运行:
bash
nohup sleep 1000 &
### 3. 使用 `disown` 命令
如果你已经使用 `&` 符号将命令放入后台,并且想要将它从当前会话中移除,可以使用 `disown` 命令。
bash
disown [PID]
例如,如果你想要将上面 `sleep` 命令的进程从当前会话中移除,可以使用以下命令:
bash
disown %1
其中 `%1` 是后台进程的进程号。
### 4. 使用 `screen` 或 `tmux` 会话
`screen` 和 `tmux` 是两款强势的终端模拟器,它们允许你创建多个会话,每个会话都可以自主于其他会话运行。
#### 使用 `screen`
首先,你需要安装 `screen`(如果还没有安装的话):
bash
sudo apt-get install screen
然后,创建一个新的 `screen` 会话:
bash
screen
在新的 `screen` 会话中运行你的命令:
bash
command
要退出 `screen` 会话,但让命令继续在后台运行,可以使用以下命令:
bash
Ctrl+A D
要在任何时候重新连接到 `screen` 会话,使用以下命令:
bash
screen -r
#### 使用 `tmux`
安装 `tmux`:
bash
sudo apt-get install tmux
启动一个新的 `tmux` 会话:
bash
tmux
在 `tmux` 会话中运行你的命令:
bash
command
退出 `tmux` 会话但不关闭会话:
bash
Ctrl+B D
重新连接到 `tmux` 会话:
bash
tmux attach
### 5. 使用 `at` 或 `anacron` 命令
如果你想要在未来的某个时间点运行命令,可以使用 `at` 或 `anacron`。
#### 使用 `at`
安装 `at`:
bash
sudo apt-get install at
使用 `at` 命令安排命令在未来的某个时间点运行:
bash
at [时间]
例如,以下命令将在 10 分钟后运行 `sleep` 命令:
bash
at now + 10 minutes
echo sleep 1000 | at now + 10 minutes
#### 使用 `anacron`
`anacron` 是一个用于定期运行任务的工具,它可以处理系统的启动和关机。使用 `anacron` 可以确保即使系统关闭,任务也会在预定的时间运行。
编辑 `/etc/anacron.d/` 目录下的文件来添加新的任务。
例如,以下配置将每天运行 `sleep` 命令:
bash
D daily . /usr/local/bin/sleep 1000
### 总结
在 Linux 系统中,有多种方法可以将命令在后台运行。选择哪种方法取决于你的具体需求和热衷于。无论你是想要长时间运行的任务,还是需要在不阻塞当前会话的情况下执行命令,这些方法都能帮助你轻松实现。