linux命令shell关了还继续
-
在Linux操作系统中,命令shell是用户与操作系统交互的界面。当你在命令行终端中执行一个命令时,shell会调用相应的程序来执行该命令,并将结果返回给用户。然而,当你关闭命令行终端时,shell并没有真正终止运行,它仍然在后台继续执行。
这是因为在Linux系统中,每个用户登录到系统后,都会分配一个特定的用户ID。当你打开一个命令行终端时,实际上是一个shell进程在运行。当你关闭该终端时,只是将该shell进程的前端(即控制终端)关闭了,但是后台的shell进程仍然在继续运行。
这种设计有一些好处。首先,你可以打开多个命令行终端,并在每个终端中执行不同的任务。关闭一个终端并不会影响其他终端中的任务执行。其次,如果你在一个终端中执行了一个长时间运行的任务,你可以在后台执行,然后关闭终端,任务仍然会继续执行下去。
当然,如果你希望完全停止一个shell进程的运行,你可以使用特定的命令来实现。例如,你可以使用”kill”命令来终止一个进程。首先,你需要查找到要终止的进程的ID。你可以使用”ps”命令来查看当前系统中正在运行的进程列表,并找到你想要终止的shell进程的ID。然后,使用”kill”命令加上进程ID来终止该进程。
总结起来,虽然关闭命令行终端并不会终止shell进程的运行,但你可以通过特定的命令来终止特定的进程。这种设计使得在Linux系统中可以非常方便地同时进行多个任务,并且可以在后台执行长时间运行的任务。
2年前 -
当你关闭Linux命令行(shell)终端时,正在运行的进程还会继续在后台运行。这是因为Linux操作系统采用了多任务处理的方式,并且支持进程的分离。
下面是关于关闭Linux命令行终端后进程继续运行的几个要点:
1. 后台任务和前台任务:在Linux中,可以将一个任务分为前台任务和后台任务。前台任务是当前正在运行的任务,而后台任务则是在后台运行的任务。当你关闭终端时,前台任务会受到影响,但后台任务会继续运行。
2. nohup命令:你可以使用nohup命令来让一个进程在终端关闭后继续在后台运行。例如,你可以使用以下命令来运行一个脚本:
“`
nohup ./script.sh &
“`上述命令会在后台运行`script.sh`脚本,并且该脚本会在终端关闭后继续运行。nohup命令会将该进程的输出重定向到一个名为`nohup.out`的文件中。
3. 使用“&”符号:在Linux终端中,你可以通过在命令的末尾加上“&”符号将其放入后台运行。例如,你可以运行以下命令:
“`
./command &
“`上述命令会将`command`命令放入后台运行,即使终端关闭,该进程仍然会继续运行。
4. 使用tmux或screen:tmux和screen是两个常用的终端多路复用工具。它们允许你创建多个虚拟终端,并在其中运行不同的程序。当你关闭一个终端时,其中的程序仍然会继续在后台运行。
5. 使用系统服务或守护进程:如果你希望某个进程在系统启动后一直持续运行,即使终端关闭,你可以将其配置为系统服务或守护进程。这样,该进程会在系统启动时自动运行,并且不受终端的影响。
综上所述,当你关闭Linux命令行终端时,正在后台运行的进程仍然会继续运行。你可以使用nohup命令、在命令末尾加上“&”符号、使用tmux或screen工具,或将进程配置为系统服务或守护进程来保持进程的持续运行。
2年前 -
在Linux中,shell进程是用户与操作系统之间进行交互的界面。当用户在shell中运行命令时,shell会创建一个子进程来执行这些命令。一旦命令执行完毕,子进程就会终止。
然而,有几种方法可以使得在关闭shell后,仍然能够继续运行命令。下面介绍几种常见的方式:
1. 使用后台作业(Background Jobs):当在命令的末尾添加`&`字符时,命令将会在后台运行,通常情况下,这个命令的输出不会显示在shell的界面上。用户可以继续输入其他命令,并在需要的时候通过`jobs`命令查看后台作业的状态,或使用`fg`命令将其切换到前台执行。
例如,运行一个需要较长时间才能完成的命令时,可以将其放在后台运行,如:`command &`。
2. 使用nohup命令:nohup命令可以在命令执行期间忽略挂断信号(SIGHUP)。
nohup命令的一般格式为:`nohup command &`。执行命令之后,可以关闭shell而不会影响命令的执行。命令的输出将被重定向到一个名为nohup.out的文件中。3. 使用Screen工具:Screen是一个终端复用程序,它允许用户在一个终端会话中运行多个虚拟终端,并在关闭当前终端之后保持任务的进行。
首先,可以使用以下命令安装Screen工具:
“`
sudo apt-get install screen
“`
然后,可以使用以下命令启动一个新的screen会话:
“`
screen
“`
在screen会话中,可以执行需要持续运行的命令。在需要时,可以使用以下命令将screen会话切换到后台:
“`
Ctrl + A,然后按下D键
“`
这样,就可以关闭当前终端,但screen会话仍然在后台运行。后续可以通过以下命令重新连接到该screen会话:
“`
screen -r
“`
重新连接到screen会话后,可以继续查看和操作这个会话。4. 使用tmux工具:tmux是一个功能强大的终端复用工具,类似于Screen工具,它可以使得在关闭shell后仍然可以保持任务的进行。安装和使用tmux的方法与Screen类似。
无论使用哪种方式,在关闭shell后继续运行命令时,应当注意以下几点:
– 确保在命令的末尾添加`&`字符,或使用nohup、screen、tmux等工具来启动命令,以确保它在后台运行。
– 确保命令的输出被正确地重定向,以便在需要时能够查看。这些方法使得在关闭shell后仍然能够继续运行命令,可以方便地进行一些耗时的操作,而无需保持终端开启。
2年前