如何不关闭服务器退出终端

worktile 其他 58

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    如果您希望在退出终端后保持服务器运行,可以使用以下两种方法:

    1. 使用 nohup 命令

      • 运行您的服务器命令,并在末尾添加 & 符号,将其放入后台运行,例如:./server &
      • 使用以下命令将任务和输出重定向到一个文件中,并强制该命令在终端关闭后继续运行:nohup ./server > server.log 2>&1 &
      • 您可以使用 Ctrl+C 来退出终端,但是服务器将继续在后台运行,输出信息会写入到 server.log 文件中。您可以使用 tail -f server.log 命令来查看实时日志。
    2. 使用 screen 命令

      • 首先安装 screen 工具,以 Ubuntu 为例,使用命令 sudo apt-get install screen 进行安装。
      • 使用以下命令启动一个新的 screen 会话:screen -S your_session_name
      • 在该会话中运行您的服务器命令,例如:./server
      • 按下 Ctrl+A,然后按下 d 键,将会话置于后台运行。
      • 您可以关闭终端窗口,服务器仍将在后台运行。
      • 当您需要重新连接到该会话时,可以使用以下命令:screen -r your_session_name

    无论选择哪种方法,都可以确保服务器在终端关闭后继续运行。选择适合您的需求和环境的方法,并根据需要来选择合适的选项。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要在不关闭服务器的情况下退出终端,可以尝试以下方法:

    1. 使用后台任务: 在终端中运行的程序可以在后台运行,这样即使终端被关闭,程序也会继续在服务器上运行。可以使用nohup命令来启动程序,并将输出重定向到文件中。例如:nohup ./program > output.log &。这将启动program并将输出保存到output.log文件中,同时将程序放入后台运行。

    2. 使用screen命令: screen是一个终端复用工具,可以在服务器上创建多个虚拟终端,而且这些终端可以在终端关闭后继续运行。要使用screen,首先需要安装它(使用apt-getyum等命令),然后在终端中使用screen命令启动一个新的screen会话。在此会话中执行任意命令,并按下Ctrl+Ad键组合来脱离(离开)该会话。关闭终端后,可以通过重新登录服务器并运行screen -r命令来重新连接到之前的screen会话。

    3. 使用tmux命令: tmux是另一个终端复用工具,与screen类似。安装和使用方法类似于screen。首先安装tmux(使用apt-getyum等命令),然后在终端中使用tmux命令启动一个新的tmux会话。在此会话中运行任意命令,并按下Ctrl+Bd键组合来脱离该会话。终端关闭后,可以通过重新登录服务器并运行tmux attach命令来重新连接到之前的tmux会话。

    4. 使用disown命令: 在运行程序或命令时,可以在命令之前添加disown命令,将其与终端分离。例如,command & disown。这将使程序继续在后台运行,即使终端关闭。

    5. 使用远程连接工具: 如果您使用SSH等远程连接工具连接到服务器,请确保不要使用"关闭"按钮或断开连接命令来关闭终端。而是通过关闭工具本身,比如关闭SSH客户端窗口。这样做可以确保服务器上的进程继续在后台运行,而不会被意外关闭。

    请注意,尽管以上方法可以使程序继续在服务器上运行,但在长时间运行过程中,可能会出现某些问题,如资源占用过高或连接断开等。因此,建议使用服务器管理工具,如systemdsupervisord来管理后台任务并确保其稳定运行。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在 Linux 系统中,可以通过以下方法实现不关闭服务器而退出终端:

    1. 使用 nohup 命令

    使用 nohup 命令运行程序可以将程序放在后台运行,并忽略终端的挂断信号,从而实现终端退出后程序继续运行。

    nohup command &
    

    例如,我们使用 nohup 来运行一个名为 myprogram 的程序:

    nohup ./myprogram &
    

    这样就可以在终端中退出,而 myprogram 会在后台继续运行。

    1. 使用 disown 命令

    disown 命令用于将一个正在运行的进程从当前终端中脱离。

    首先需要使用 Ctrl + Z 将当前运行的进程暂停,然后使用 bg 命令将该进程放到后台运行。

    Ctrl + Z
    bg
    

    然后使用 jobs 命令查看后台运行的进程的编号,选择需要保持运行的进程编号(假设为 N)。

    jobs
    

    最后使用 disown 命令将该进程脱离终端。

    disown %N
    

    这样就可以在终端中退出,而该进程会继续在后台运行。

    1. 使用 screen 或 tmux

    screen 和 tmux 是两个常用的终端复用工具,它们可以在一个终端中创建多个虚拟终端,并且可以在不同的虚拟终端之间切换,从而实现在终端退出后继续运行程序。

    首先需要安装 screen 或 tmux:

    sudo apt install screen
    
    或
    
    sudo apt install tmux
    

    然后可以使用 screen 或 tmux 命令创建一个新的虚拟终端:

    screen
    
    或
    
    tmux
    

    在新的虚拟终端中运行程序,并且按下 Ctrl + A + D 快捷键可以将虚拟终端放到后台运行。

    此时,可以关闭原始终端退出,而程序会继续在后台运行。

    当需要重新连接到程序时,可以使用以下命令:

    使用 screen:

    screen -r
    
    或
    
    screen -x
    

    使用 tmux:

    tmux attach
    
    或
    
    tmux attach-session
    

    以上就是几种在不关闭服务器的情况下退出终端的方法。根据实际情况选择合适的方法来实现不关闭服务器而退出终端。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部