linux终端关闭了命令还会执行吗
-
不会。当你在Linux终端中执行一个命令时,命令会被提交给操作系统的进程管理器,并在后台运行。一旦你关闭终端窗口,与终端窗口相关联的会话将结束,与此会话相关的所有进程都将被终止。因此,关闭终端窗口不会影响你在终端中执行的命令的执行。如果你希望在终端关闭后继续执行命令,可以使用`nohup`命令将命令与一个新的会话关联起来,或者使用`screen`命令创建一个持久的终端会话。这样即使终端窗口关闭,命令仍然会继续执行。
2年前 -
在Linux中,如果终端关闭了,正在执行的命令会受到影响。下面是关于关闭终端后命令是否继续执行的几个要点:
1. 前台程序:如果命令在前台运行,关闭终端会导致该命令终止。当用户注销或关闭终端时,所有前台进程都会收到SIGHUP信号,这会导致它们终止运行。例如,如果您通过终端运行了一个长时间运行的程序,关闭终端将使该程序停止。
2. 后台程序:如果命令在后台运行,关闭终端通常不会影响它的执行。当用户注销或关闭终端时,后台进程不会收到SIGHUP信号,因此它们会继续运行。后台进程的输出通常会被重定向到文件中,这样即使终端关闭了,您也可以在后来查看输出。
3. nohup命令:您可以使用nohup命令运行命令,使其忽略SIGHUP信号。这意味着关闭终端时,命令仍然会继续执行。例如,您可以使用以下命令运行一个命令,并将输出重定向到文件中:
“`
nohup command > output.txt &
“`
使用nohup可以确保命令在终端关闭后继续执行,并且输出将保存在output.txt中。4. 守护进程:守护进程是在后台运行的长时间运行的程序,通常作为系统服务提供某种功能,例如网络服务或监视进程。它们通常不会受到终端关闭的影响,并且会在系统启动时自动启动。关闭终端不会影响守护进程的执行。
5. 如果您需要在关闭终端后继续执行命令,并且不希望命令受到任何影响,可以考虑使用远程登录工具,例如SSH。通过SSH登录到远程服务器,您可以在远程终端上运行命令,并且即使您关闭本地终端,命令也会继续在远程服务器上执行。
总而言之,关闭终端会影响命令的执行,但具体影响取决于命令是在前台还是后台运行,以及是否使用了nohup命令或守护进程。
2年前 -
当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年前