8

4 种简单方法,在 Linux 后台运行命令

 1 year ago
source link: https://www.sysgeek.cn/run-linux-commands-in-background/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Linux

Linux 能够在后台运行命令,这是高效系统管理的基石。本文将介绍如何在 Linux 发行版中以后台方式运行命令,确保最优化的系统性能和流畅的工作流程。

什么是 Linux 后台任务

在 Linux 中,后台任务实质上是从终端或会话中独立运行的进程。这些任务具有弹性,即使终端被终止或用户退出登录,它们仍然可以继续运行。Linux 后台任务对于耗时较长或无需用户持续干预的任务至关重要。

在 Linux 后台运行命令有许多好处和优势,包括:

  • 不会占用当前终端会话:在后台运行命令后,您可以继续在当前终端中执行其他任务,而不会被阻塞。
  • 进程持续运行:后台进程不会因关闭终端而停止,可以一直运行到任务完成。
  • 释放系统资源:后台进程会释放终端的输入输出资源,有利于其他前台进程使用。
  • 提高生产力:可以同时运行多个后台任务,大大提高了系统利用率和用户生产力。
  • 方便管理进程:可以使用作业管理工具如 jobsfgbg 方便地管理后台进程。
  • 避免进程阻塞:对于需要长时间运行的进程,在后台运行可以避免阻塞前台操作。

方法 1:使用 & 运算符在 Linux 后台运行命令

& 运算符是在 Linux 后台运行命令的基本工具。通过在任何命令的末尾添加 & 运算符,可以让 Linux 在后台执行该命令。

例如,想要在后台运行一个名为 example.sh 的脚本,命令如下:

复制
./example.sh &

执行该命令后,Linux 会立即返回后台任务的 PID,以方便用户随后监视或管理该任务。

方法 2:使用 nohup 在 Linux 后台运行命令

如果要在终端会话终止后保持任务继续处于活动状态,nohup 就是首选工具。nohup 是「no hang up」的缩写,它可以确保命令的不间断执行。

例如,使用 nohup 在后台运行 example.sh 脚本的命令如下:

复制
nohup ./example.sh &

默认情况下,命令的输出将被重定向到名为 nohup.out 的文件。如果有需要,可以灵活地将其重定向到其他文件。

方法 3:使用 screen 在后台运行 Linux 命令和管理会话

screen 是一个强大的 Linux 实用程序,专为高级会话管理而设计。它能够创建多个终端会话,并轻松地在会话之间切换,还可以从当前会话中分离出来以便稍后重新连接。

要创建一个新的 screen 会话,可以使用以下命令:

复制
screen -S session_name

要从当前会话中分离(detach),可以使用快捷键:

复制
Ctrl + a,然后按 d

要重新连接到之前分离的会话,可以运行:

复制
screen -r session_name

方法 4:在后台运行 Linux 命令的高级工具 tmux

tmux 是另一个功能强大的工具,提供类似于 screen 的功能,并增加了一些额外的特性。它允许用户轻松地创建、分离和重新连接会话。

要使用 tmux 创建一个新的会话,可以在终端中运行以下命令:

复制
tmux new -s session_name

要从活动会话中分离(detach),可以使用快捷键:

复制
Ctrl + b,然后按 d

要重新载入之前分离的会话,可以运行:

复制
tmux attach -t session_name

监视和管理 Linux 后台命令

一旦任务被设置为在后台运行,有效地监视和控制就变得至关重要。jobs 命令可以提供所有后台任务的简洁列表:

复制
jobs

要将后台任务移到前台,可以使用 fg 命令,后面跟上作业编号:

复制
fg %job_number

掌握在后台运行 Linux 命令的方法可以充分发挥 Linux 操作系统的潜力。通过本文介绍的技术和工具,您可以充分优化任务,提升 Linux 使用体验。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK