当 我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,你可能 希望它能够在每天的非负荷高峰时间段运行。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。
在本文中将讨论:
• 设置crontab文件,并用它来提交作业。
• 使用a t命令来提交作业。
• 在后台提交作业。
• 使用nohup命令提交作业。
名词解释:
<!--[if !supportLists]-->1、 <!--[endif]-->cron,系统调度进程,可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。
<!--[if !supportLists]-->2、 <!--[endif]-->at命令,使用它在一个特定的时间运行一些特殊的作业,或在晚一些的非负荷高峰时间段或高峰负荷时间段运行。
<!--[if !supportLists]-->3、 <!--[endif]-->&,使用它在后台运行一个占用时间不长的进程。
<!--[if !supportLists]-->4、 <!--[endif]-->nohup 使用它在后台运行一个命令,即使在用户退出时也不受影响。
&命令
当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。
可以使用&命令把作业放到后台执行。
该命令的一般形式为:命令&。
为什么要在后台执行命令?因为当在后台执行命令时,可以继续使用你的终端做其他事情。适合在后台运行的命令有f i n d、费时的打印作业、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
command > out.file 2>&1 &
在上面的例子中,所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。
向后台提交命令:
现在我们运行一个find命令,查找名为“srm.conf”的文件,并把所有标准输出和错误输出重定向到一个叫find.dt的文件中:
find srm.conf > find.dt 2>&1 &
在上面的例子中,在我们成功提交该命令之后,系统给出了它的进程号27015。当该作业完成时,按任意键(一般是回车键)就会出现一个提示。
用ps命令查看进程
当一个命令在后台执行的时候,可以用提交命令时所得到的进程号来监控它的运行。在前面的例子中,我们可以按照提交ps1时得到的进程号,用p s命令和g r e p命令列出这个进程:ps –ef | grep ps1,记住,在用p s命令列出进程时,它无法确定该进程是运行在前台还是后台。
杀死后台进程
如果想杀死后台进程可以使用kill命令。当一个进程被放到后台运行时,shell会给出一个进程号,我们可以根据这个进程号,用k i l l命令杀死该进程。该命令的基本形式为:kill -signal [process_number];现在暂且不要考虑其中的各种不同信号;在杀进程的时候,执行下面的命令(你的进程号可能会不同)“kill 29563”并按回车键。系统将会给出相
应的信息告诉用户进程已经被杀死。
如果系统没有给出任何信息,告诉你进程已经被杀死,那么不妨等一会儿,也许系统正在杀该进程,如果还没有回应,就再执行另外一个k i l l命令,这次带上一个信号选项:15如果用上述方法提交了一个后台进程,那么在退出时该进程将会被终止。为了使后台进程能够在退出后继续运行,可以使用nohup命令,下面我们就介绍这一命令。
nohup命令
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令,该命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:nohup command &
使用nohup命令提交作业
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:nohup command > myout.file 2>&1
一次提交几个作业
如果希望一次提交几个命令,最好能够把它们写入到一个shell脚本文件中,并用nohup命令来执行它。
小结
本 文中所讨论的工具主要是有关后台运行作业的。有时我们必须要对大文件进行大量更改,或执行一些复杂的查找,这些工作最好能够在系统负荷较低时执行。创建一 个定时清理日志文件或完成其他特殊工作的脚本,这样只要提交一次,就可以每天晚上运行,而且无需你干预,只要看看相应的脚本日志就可以了。crond和其他工具可以使系统管理任务变得更轻松。
相关推荐
1. 后台执行 一般运行linux上的程序都是执行 .sh 文件(./sh文件...加载一个命令的最后面,表示这个命令放在后台执行 2. 查看后台运行的命令 有两个命令可以来查看,ps 和 jobs。区别在于 jobs 只能查看当前终端后台
本文主要讲解两种常见的后台执行命令:`&` 和 `nohup`。 首先,`&` 符号用于将命令放入后台执行。当你在命令末尾添加 `&` 时,程序将不会阻塞终端,而是立即返回命令提示符,允许你继续进行其他操作。例如,如果你...
在Linux和Unix操作系统中,`shell`后台执行命令是一个重要的功能,它允许用户在不阻塞终端的情况下运行程序。这通常适用于那些长时间运行或者需要在特定时间执行的任务,以便用户可以继续其他工作。 首先,`cron`是...
本文将深入探讨标题中提到的几种后台执行命令,包括`at`、`&`以及`nohup`。 首先,`at`命令是一个定时任务调度器,它允许你在指定的时间执行一次性任务。例如,如果你需要在晚上10点运行一个脚本,你可以输入以下...
# 执行命令 def command(ssh_config, cmd, result_print=None, nohup=False): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=ssh_config....
- **场景一:后台运行任务** - 当需要执行一个耗时较长的任务,但又不希望该任务因为终端关闭而停止时,可以使用`nohup`命令。 - **场景二:避免SIGHUP信号** - 默认情况下,当一个终端会话结束时,所有由该会话启动...
使用nohup将训练程序后台不间断运行+随时查看训练情况输出与可视化使用服务器进行远程训练nohup指令和查看输出缺省输出文件的写法指定输出文件的写法和CUDA一起用实时查看out配合visdom使用 使用服务器进行远程训练 ...
这里的`command`是你希望在后台运行的命令,`参数`是命令所需的具体参数,`&`表示将命令放入后台执行。运行`nohup`命令后,其输出信息默认会被重定向到`nohup.out`文件中,如果想指定其他输出文件,可以这样操作: `...
使用 nohup 命令可以让命令在后台执行,例如: nohup python /home/yyh/server/start.py & 这条命令将 python 脚本 `/home/yyh/server/start.py` 在后台执行,并且将输出重定向到当前文件夹下的 `start.log` 文件...
本文将重点介绍几种常用的Linux后台运行命令,包括快捷键方式以及`cron`和`crontab`命令的详细使用方法。这两种命令主要用于设定定时任务,涉及到进程调度与管理。 #### 二、快捷键方式启动后台任务 对于简单的...
Linux 是一个功能强大且广泛使用的操作系统,nohup 命令是 Linux 中的一个常用命令,用于在后台运行程序并将输出重定向到文件中。但是在使用 nohup 命令时,经常会遇到日志输出文件过大的问题,导致日志文件变得非常...
在Linux系统中,`nohup`命令是一个非常实用的工具,它允许用户在退出终端后继续执行命令或脚本,通常用于运行长时间运行的任务。然而,当使用`nohup`时,日志输出可能会迅速增加,导致日志文件过大,这不仅占用大量...
这里,`-u`参数告诉Python不要使用缓冲,`>`用于重定向标准输出到`flush.log`文件,`2>&1`表示将标准错误流(2)重定向到与标准输出(1)相同的地方,也就是同样写入`flush.log`,最后的`&`让命令在后台执行。...
Linux命令是Linux操作系统中进行系统管理、文件操作和任务执行的主要工具。对于新手而言,掌握基本的Linux命令是进入这个领域的第一步。以下是一些关键的Linux命令和概念的详细解释: 1. **more 和 less 命令**: ...
- `&`:让命令在后台执行,如`command &`。 - `;`:连接两个命令,无论前一个命令成功或失败都会执行下一个。 - `&&`和`||`:条件执行,前一个命令成功后执行`&&`后的命令,前一个命令失败则执行`||`后的命令。 ...
在使用Python进行远程服务器操作时,我们经常遇到需要在服务器后台执行持续运行的命令,比如`nohup`。`nohup`命令允许我们在退出终端后仍然保持进程的运行状态,不受SIGHUP信号的影响。然而,在使用Python的paramiko...
- 当终端关闭后,使用`nohup`命令可以确保后台程序继续运行: ```sh nohup find . -name "abc" -print > myfind & ``` #### 二、特殊按键 - **Ctrl+d**: 结束输入或退出当前Shell。 - **Del**: 中断当前操作,...