温馨提示×

Ubuntu nohup命令如何避免进程被终止

小樊
46
2025-10-24 13:13:51
栏目: 智能运维

在 Ubuntu 中,nohup 命令用于在后台运行程序,即使关闭终端或注销用户,程序也会继续运行

  1. 使用 nohup 命令:

    在启动程序时,使用 nohup 命令。例如,要运行名为 my_script.sh 的脚本,可以使用以下命令:

    nohup ./my_script.sh &
    

    这将在后台运行脚本,并将输出重定向到名为 nohup.out 的文件。

  2. 使用 disown 命令:

    如果程序已经在运行,可以使用 disown 命令将其从当前 shell 的作业表中移除。首先,使用 jobs 命令查看后台运行的作业:

    jobs
    

    然后,使用 disown 命令将作业从作业表中移除。例如,如果要移除作业编号为 1 的作业,可以使用以下命令:

    disown %1
    

    这将使作业在关闭终端或注销用户后继续运行。

  3. 使用 screentmux

    screentmux 是终端复用器,允许您在一个终端窗口中运行多个终端会话。这样,即使关闭终端或注销用户,程序也会在后台继续运行。

    例如,要使用 screen,请按照以下步骤操作:

    • 安装 screen(如果尚未安装):

      sudo apt-get install screen
      
    • 启动新的 screen 会话:

      screen
      
    • screen 会话中运行程序,例如:

      ./my_script.sh
      
    • Ctrl + A,然后按 Dscreen 会话分离并返回到常规终端。

    要重新连接到 screen 会话,请使用以下命令:

    screen -r
    

    如果有多个 screen 会话,可以使用 screen -ls 列出它们,并使用 screen -r <session_id> 重新连接特定的会话。

    tmux 的使用方法类似于 screen。首先安装 tmux,然后使用 tmux 命令启动新的会话。在会话中运行程序,然后按 Ctrl + B,接着按 D 将会话分离。要重新连接会话,请使用 tmux attach 命令。

0