在 Ubuntu 中,若要让命令在后台执行并在退出终端时也不会停止,可以使用以下几种方法:
1. 使用 &
将命令放入后台运行
在命令末尾添加 &
,这样命令会在后台执行,但当你关闭终端时,该命令仍可能会被终止。
your_command &
2. 使用 nohup
命令
nohup
命令允许程序在用户退出终端后继续运行。它会将输出重定向到 nohup.out
文件中。
nohup your_command &
3. 使用 screen
或 tmux
screen
和 tmux
是终端复用工具,可以在一个终端会话中创建多个虚拟终端,并在断开连接后继续运行。
3.1 使用 screen
:
sudo apt install screen # 如果未安装
screen -S session_name # 创建一个新会话
your_command # 在screen会话中运行命令
Ctrl+A+D # 从会话中分离
要重新连接到会话:
screen -r session_name
要删除会话:
# 354743.session_name是一个示例的session名字
screen -X -S 354743.session_name quit
3.2 使用 tmux
:
sudo apt install tmux # 如果未安装
tmux new -s session_name # 创建一个新会话
your_command # 在tmux会话中运行命令
Ctrl+B+D # 从会话中分离
要重新连接到会话:
tmux attach -t session_name
4. 使用 disown
命令
如果已经在运行一个命令并希望在退出终端后继续运行,可以使用 disown
。
your_command &
disown
5. 使用 systemd
服务(适用于长期运行的守护进程)
对于长期运行的后台任务,可以创建一个 systemd
服务。
1. 创建服务文件:
sudo nano /etc/systemd/system/mycommand.service
2. 添加以下内容(根据需要修改):
[Unit]
Description=My Command Service
[Service]
ExecStart=/path/to/your_command
Restart=always
[Install]
WantedBy=multi-user.target
3. 启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl start mycommand
sudo systemctl enable mycommand
这些方法可以根据你的需求选择使用,其中 nohup
,screen
和tmux
是最常用的。
评论区