跳转至

Ubuntu守护进程

为何使用

如果通过ssh登录或以ssh为基础的工具,如xshell、MobaXterm等进行远程操作时,有可能会因超时等问题导致中断(这是由ssh工具导致的),ssh中断程序也会中断。
建议您使用后台守护进程运行需要长时间保持的程序,以避免遭受不必要的损失。

常用的守护进程软件以 tmuxscreen 最为常用,其中 tmux 功能更多且使用更为方便,推荐使用;

一、tmux使用方法

  • 安装 tmux

    sudo apt install tmux
    

  • 创建新会话

    tmux                        # 启动新的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推
    
    tmux new -s <session-name>  # 新建一个指定名称的会话。
    
    启动 Tmux 窗口后,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。

  • 分离会话
    在 Tmux 窗口中,按下 Ctrl+b d 或者输入 tmux detach 命令,就会将当前会话与窗口分离。

    tmux detach
    
    上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。

  • 查询会话

    tmux ls                 # 查询正在运行中的会话
    

  • 接入会话

    tmux attach -t 0                # 使用会话编号接入
    
    tmux attach -t <session-name>   # 使用会话名称接入
    

  • 关闭会话

    tmux kill-session -t 0                  # 使用会话编号关闭
    
    tmux kill-session -t <session-name>     # 使用会话名称关闭
    

  • 切换会话

    tmux switch -t 0                # 使用会话编号切换
    
    tmux switch -t <session-name>   # 使用会话名称切换
    

  • 重命名会话

    tmux rename-session -t 0 <new-name>     # 该命令会将 0 号会话重命名
    

  • 操作流程

    1. 新建会话 tmux new -s my_session
    2. 在 Tmux 窗口运行所需的程序
    3. 按下快捷键 Ctrl+b d 将会话分离
    4. 下次使用时,重新连接到会话 tmux attach-session -t my_session

快捷键使用方法

  • 在 tmux 窗口中有时运行程序正在执行,我们无法进行输入,这时候需要使用快捷键解决;
  • tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是 Ctrl+b,即先按下 Ctrl+b ,快捷键才会生效;
  • 举例来说,分离会话的快捷键是 Ctrl+b d。它的用法是,在 Tmux 窗口中,先按下 Ctrl+b ,再按下 d
  • 注意使用快捷键时,窗口中是没有提示内容的,直接输入快捷键内容即可;
  • 常用快捷键

    • Ctrl+b d:分离当前会话;
    • Ctrl+b s:列出所有会话;
    • Ctrl+b $:重命名当前会话;
  • tmux更多功能可查看相关文档

一、screen使用方法

  • 安装 screen

    sudo apt install screen
    

  • 创建新会话

    screen              # 启动新的 screen 窗口,新的窗口与原窗口类似,请注意区分
    

  • 分离会话
    在 screen 窗口中,按下 Ctrl + a + d 就会将当前会话与窗口分离,注意快捷键需要同时按住时生效;
    退出到原终端,并且显示detached,意味着这个会话只是离开并未退出;

  • 查询会话

    screen -ls              # 查询正在运行中的会话名称
    

  • 接入会话

    screen -r <session-name>    # 使用会话名称接入
    

  • 关闭会话
    在 screen 会话中执行 Ctrl + d 关闭会话,如果有正执行的程序,先执行 Ctrl + c 关闭正在执行的程序。