首页 > 其他分享 >后台执行命令 -- &和nohup

后台执行命令 -- &和nohup

时间:2023-03-22 18:05:53浏览次数:33  
标签:执行命令 -- 作业 命令 nohup 后台 进程 运行


当 我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,你可能 希望它能够在每天的非负荷高峰时间段运行。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。

 

在本文中将讨论:

• 设置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和其他工具可以使系统管理任务变得更轻松。

标签:执行命令,--,作业,命令,nohup,后台,进程,运行
From: https://blog.51cto.com/u_2650279/6143059

相关文章

  • 一步之遥:外贸网站谷歌优化技巧,带你迈向成功
    自从我踏入外贸行业以来,见证了无数企业在国际市场的艰苦拼搏。然而,许多企业在谷歌搜索引擎的优化方面却显得力不从心。今天,我将与大家分享我在谷歌SEO优化方面的一些经验,希......
  • 分布式搜索算法,算法
    对于搜索引擎来说,索引存放在成千上万台机器上,如何进行分布式搜索呢? 假设搜索结果是以分页的方式显示,以PageNumber代表当前页,从1开始,以PageSize代表页面大小,默认为10,以N代表......
  • 恒创科技:如何防止服务器IP DDOS攻击?
    当今网络安全技术的发展,IPDDoS攻击的威胁也越来越严重,攻击者会攻击网络的关键网络资源,从而造成严重的损失。因此,保护网络资源,有效的防御IPDDoS攻击,已经成为当今网络安......
  • 提高bao光率:外贸网站如何充分利用谷歌优化赢得客户
    自从我从事外贸行业以来,谷歌优化一直是我关注的重点。作为一个外贸从业者,我深知提高网站在谷歌搜索引擎中的排名对企业的重要性。那么,如何利用谷歌优化来提高外贸网站的曝光......
  • NPM(node package manager)使用、语法介绍
    npm是每一位前端工程师都必须具备技能,本文结合最新的npmv5讲解npm使用方法,因本人使用windows系统,而原作使用mac系统,所以在命令不同时,会特意提出。安装Node.jsnode.js的可......
  • 【技巧】Windows Server 2012/2016/2018桌面显示我的电脑图标
    从WindowsServer2012开始,微软取消了服务器桌面个性化设置功能,WindowsServer2012/2016用户桌面上默认只有一个回收站的图标,这让习惯于使用我的电脑图标功能的用户很不适......
  • 使用FileZilla Server基于NAS共享搭建FTP Server
    客户有需求想通过FTP访问NAS的一个共享目录,是一台windows系统的服务器,基于CIFS.尝试了很多次都有问题,我在公司的测试环境也尝试了,同样遇到错误:经过排查和不懈努力研究,看到外......
  • 网站流量飙升背后:外贸企业谷歌SEO优化实战经验分享
    自从我涉足外贸行业,我逐渐认识到谷歌SEO优化在提升网站流量和吸引潜在客户方面的重要性。在这篇文章中,我将结合个人的外贸经历,与大家分享外贸企业谷歌SEO优化的实战经验,希望......
  • 第三方软件验收测试靠谱吗?验收测试报告报价多少?
    软件公司获得高校等企事业单位在开发完一款软件产品之后,必然要进行一次软件验收测试,以验证软件是否符合用户需求达到成功上线的标准。软件验收测试是交付之前的最后一个......
  • 如何在谷歌中优化外贸网站,提高业务利润?
    随着全球贸易的不断发展,越来越多的企业开始通过外贸网站开展国际贸易。而在这个过程中,如何让外贸网站在谷歌中排名更高,成为了一个关键的问题。因为谷歌作为全球最大的搜索引......