linux终端关闭了命令还会执行吗

worktile 其他 296

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    不会。当你在Linux终端中执行一个命令时,命令会被提交给操作系统的进程管理器,并在后台运行。一旦你关闭终端窗口,与终端窗口相关联的会话将结束,与此会话相关的所有进程都将被终止。因此,关闭终端窗口不会影响你在终端中执行的命令的执行。如果你希望在终端关闭后继续执行命令,可以使用`nohup`命令将命令与一个新的会话关联起来,或者使用`screen`命令创建一个持久的终端会话。这样即使终端窗口关闭,命令仍然会继续执行。

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

    在Linux中,如果终端关闭了,正在执行的命令会受到影响。下面是关于关闭终端后命令是否继续执行的几个要点:

    1. 前台程序:如果命令在前台运行,关闭终端会导致该命令终止。当用户注销或关闭终端时,所有前台进程都会收到SIGHUP信号,这会导致它们终止运行。例如,如果您通过终端运行了一个长时间运行的程序,关闭终端将使该程序停止。

    2. 后台程序:如果命令在后台运行,关闭终端通常不会影响它的执行。当用户注销或关闭终端时,后台进程不会收到SIGHUP信号,因此它们会继续运行。后台进程的输出通常会被重定向到文件中,这样即使终端关闭了,您也可以在后来查看输出。

    3. nohup命令:您可以使用nohup命令运行命令,使其忽略SIGHUP信号。这意味着关闭终端时,命令仍然会继续执行。例如,您可以使用以下命令运行一个命令,并将输出重定向到文件中:
    “`
    nohup command > output.txt &
    “`
    使用nohup可以确保命令在终端关闭后继续执行,并且输出将保存在output.txt中。

    4. 守护进程:守护进程是在后台运行的长时间运行的程序,通常作为系统服务提供某种功能,例如网络服务或监视进程。它们通常不会受到终端关闭的影响,并且会在系统启动时自动启动。关闭终端不会影响守护进程的执行。

    5. 如果您需要在关闭终端后继续执行命令,并且不希望命令受到任何影响,可以考虑使用远程登录工具,例如SSH。通过SSH登录到远程服务器,您可以在远程终端上运行命令,并且即使您关闭本地终端,命令也会继续在远程服务器上执行。

    总而言之,关闭终端会影响命令的执行,但具体影响取决于命令是在前台还是后台运行,以及是否使用了nohup命令或守护进程。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    当Linux终端关闭时,正在运行的命令将停止执行。关闭终端会导致终端的命令行进程被中止,这样正在执行的任何命令也会随之停止。

    要让一个命令在关闭终端后仍然执行,可以使用以下几种方法:

    1. 使用nohup命令:nohup命令用于在后台运行命令,同时忽略挂断信号。使用nohup命令启动的命令将不会受到终端关闭的影响。例如:
    “`bash
    nohup command &
    “`
    这样会将命令command放在后台运行,并且将输出重定向到nohup.out文件中。

    2. 使用screen命令:screen命令可以创建一个可以在终端关闭后继续运行的虚拟终端。首先安装screen命令:
    “`bash
    sudo apt-get install screen
    “`
    然后使用以下命令创建一个新的screen会话:
    “`bash
    screen -S session_name
    “`
    在会话中执行需要持续运行的命令,然后按下Ctrl + A,再按下D将会话分离。此时退出终端,命令会继续在后台运行。重新连接到screen会话,可以使用以下命令:
    “`bash
    screen -r session_name
    “`

    3. 使用tmux命令:tmux是一个类似于screen的终端复用工具,可以使命令在终端关闭后继续在后台运行。安装tmux命令:
    “`bash
    sudo apt-get install tmux
    “`
    创建一个新的tmux会话:
    “`bash
    tmux new-session -s session_name
    “`
    在会话中执行需要持续运行的命令,然后按下Ctrl + B,再按下D将会话分离。此时退出终端,命令会继续在后台运行。重新连接到tmux会话,可以使用以下命令:
    “`bash
    tmux attach-session -t session_name
    “`

    使用上述方法之一可以确保终端关闭后命令仍然会继续执行。

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

400-800-1024

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

分享本页
返回顶部