喜迎
春节

在Linux后台运行指定程序的几种方法


在Linux系统中,将程序在后台运行可以释放终端,让您继续执行其他操作。下面介绍几种常用的方法:

1. 直接添加 & 符号

  • 最简单的方法:在命令末尾加上 & 符号,即可将程序放入后台运行。
  • 示例
    1
    python my_script.py &
  • 注意
    • 该方法适用于大多数命令。
    • 退出终端后,后台程序会随之终止。

2. 使用 nohup 命令

  • 忽略挂断信号nohup 命令可以使程序在用户退出终端后继续运行。
  • 示例
    1
    nohup python my_script.py &
  • 输出重定向:通常将输出重定向到一个文件中,以避免输出丢失。
    1
    nohup python my_script.py > output.log 2>&1 &
    • > output.log 将标准输出重定向到 output.log 文件。
    • 2>&1 将标准错误重定向到标准输出,即也写入 output.log 文件。

3. 使用 screen 或 tmux

  • 创建虚拟终端:screen 和 tmux 可以创建多个虚拟终端,您可以在这些终端中运行程序,即使关闭了原始终端,这些虚拟终端中的程序也会继续运行。
  • 示例
    1
    2
    3
    4
    5
    screen
    # 在screen中运行程序
    python my_script.py
    # 退出screen但不终止程序
    Ctrl+a d
  • 恢复screen
    1
    screen -r

4. 使用 systemd

  • 系统服务管理:systemd 是 Linux 系统的初始化系统和服务管理器,可以用来管理后台服务。
  • 创建服务单元文件:编写一个 .service 文件,定义服务的行为。
  • 启动服务:使用 systemctl 命令启动服务。
  • 较为复杂,适合长期运行的服务。

5. 使用 jobs 和 bg 命令

  • 将前台进程转为后台
    • Ctrl+Z:将当前前台进程挂起。
    • jobs:查看后台作业。
    • bg %job_number:将指定作业放入后台运行。

其他注意事项

  • 查看后台进程:使用 ps 命令查看当前正在运行的进程。
  • 终止后台进程:使用 kill 命令终止指定进程。
  • 日志:对于长时间运行的程序,建议将输出重定向到日志文件中,以便查看运行情况。

选择合适的方法

  • 临时任务:直接添加 & 或使用 jobsbg 命令。
  • 长期运行:使用 nohupscreentmuxsystemd
  • 复杂管理:使用 systemd

示例:

假设您有一个 Python 脚本 my_script.py,要将其在后台运行,并把输出重定向到 script.log 文件。您可以使用以下命令:

1
nohup python my_script.py > script.log 2>&1 &

总结

Linux 提供了多种方法将程序在后台运行,选择哪种方法取决于我们的具体需求和环境。


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
Linux tee 命令详解
Linux tee 命令详解
tee 命令是什么?tee 命令是一个非常有用的 Linux 命令行工具,它可以将标准输入的数据同时输出到标准输出(通常是终端)和一个或多个文件中。换句话说,tee 命令可以将数据“分流”,一边显示在屏幕上,一边保存到文件中。 基本语法1t
2023-10-06
下一篇 
Linux搜索关键词前后几行
Linux搜索关键词前后几行
Linux 命令行中的快捷键非常丰富,可以大大提高程序员的工作效率。下面将详细介绍一些常用的快捷键,并分类说明: 在工作中,经常需要在linux中根据关键词搜索日志,并获取前后几行;其实,grep 命令可以搭配 -C 或 -A 或 -B 选
2023-06-21

在Linux系统中,将程序在后台运行可以释放终端,让您继续执行其他操作。下面介绍几种常用的方法:

1. 直接添加 & 符号

  • 最简单的方法:在命令末尾加上 & 符号,即可将程序放入后台运行。
  • 示例
    1
    python my_script.py &
  • 注意
    • 该方法适用于大多数命令。
    • 退出终端后,后台程序会随之终止。

2. 使用 nohup 命令

  • 忽略挂断信号nohup 命令可以使程序在用户退出终端后继续运行。
  • 示例
    1
    nohup python my_script.py &
  • 输出重定向:通常将输出重定向到一个文件中,以避免输出丢失。
    1
    nohup python my_script.py > output.log 2>&1 &
    • > output.log 将标准输出重定向到 output.log 文件。
    • 2>&1 将标准错误重定向到标准输出,即也写入 output.log 文件。

3. 使用 screen 或 tmux

  • 创建虚拟终端:screen 和 tmux 可以创建多个虚拟终端,您可以在这些终端中运行程序,即使关闭了原始终端,这些虚拟终端中的程序也会继续运行。
  • 示例
    1
    2
    3
    4
    5
    screen
    # 在screen中运行程序
    python my_script.py
    # 退出screen但不终止程序
    Ctrl+a d
  • 恢复screen
    1
    screen -r

4. 使用 systemd

  • 系统服务管理:systemd 是 Linux 系统的初始化系统和服务管理器,可以用来管理后台服务。
  • 创建服务单元文件:编写一个 .service 文件,定义服务的行为。
  • 启动服务:使用 systemctl 命令启动服务。
  • 较为复杂,适合长期运行的服务。

5. 使用 jobs 和 bg 命令

  • 将前台进程转为后台
    • Ctrl+Z:将当前前台进程挂起。
    • jobs:查看后台作业。
    • bg %job_number:将指定作业放入后台运行。

其他注意事项

  • 查看后台进程:使用 ps 命令查看当前正在运行的进程。
  • 终止后台进程:使用 kill 命令终止指定进程。
  • 日志:对于长时间运行的程序,建议将输出重定向到日志文件中,以便查看运行情况。

选择合适的方法

  • 临时任务:直接添加 & 或使用 jobsbg 命令。
  • 长期运行:使用 nohupscreentmuxsystemd
  • 复杂管理:使用 systemd

示例:

假设您有一个 Python 脚本 my_script.py,要将其在后台运行,并把输出重定向到 script.log 文件。您可以使用以下命令:

1
nohup python my_script.py > script.log 2>&1 &

总结

Linux 提供了多种方法将程序在后台运行,选择哪种方法取决于我们的具体需求和环境。


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
Linux tee 命令详解
Linux tee 命令详解
tee 命令是什么?tee 命令是一个非常有用的 Linux 命令行工具,它可以将标准输入的数据同时输出到标准输出(通常是终端)和一个或多个文件中。换句话说,tee 命令可以将数据“分流”,一边显示在屏幕上,一边保存到文件中。 基本语法1t
2023-10-06
下一篇 
Linux搜索关键词前后几行
Linux搜索关键词前后几行
Linux 命令行中的快捷键非常丰富,可以大大提高程序员的工作效率。下面将详细介绍一些常用的快捷键,并分类说明: 在工作中,经常需要在linux中根据关键词搜索日志,并获取前后几行;其实,grep 命令可以搭配 -C 或 -A 或 -B 选
2023-06-21
  目录
  目录
hexo