后台执行命令 -- &和nohup
来源:互联网 发布:淘宝生意参谋情报竞争 编辑:程序博客网 时间:2024/05/18 19:46
当 我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,你可能 希望它能够在每天的非负荷高峰时间段运行。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。
在本文中将讨论:
• 设置crontab文件,并用它来提交作业。
• 使用a t命令来提交作业。
• 在后台提交作业。
• 使用nohup命令提交作业。
名词解释:
1、cron,系统调度进程,可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。
2、 at命令,使用它在一个特定的时间运行一些特殊的作业,或在晚一些的非负荷高峰时间段或高峰负荷时间段运行。
3、 &,使用它在后台运行一个占用时间不长的进程。
4、 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
- linux后台执行命令:&和nohup
- linux后台执行命令:&和nohup
- linux后台执行命令--nohup &
- 后台执行命令:&和nohup command & 以及关闭、查看后台任务
- nohup和screen命令---后台运行
- nohup后台执行
- LINUX使用nohup命令后台执行提交作业
- Linux 后台执行命令,退出 程序不挂起之nohup
- linux 后台执行nohup 命令,终端断开无影响
- shell中的一些后台执行命令(crontab/at/&/nohup)
- nohup命令 后台运行
- nohup命令:后台运行命令
- linux后台执行程序,& nohup
- nohup让程序后台执行
- Shell后台执行指令nohup
- nohup命令后台运行程序
- linux 后台相关命令 nohup
- MVP 框架模式(学习笔记)
- mysqldump 一些参数体验
- java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutDesignatorHandler at java.lang.Cla
- 机器学习——GBDT/xgboost
- 自定义类型
- 后台执行命令 -- &和nohup
- yii用户注册的表单验证
- C语言32个关键字
- Code[VS]3332 数列
- android中textview设置为多行文本时,如何让文字从最顶开始显示
- 微信公众号错别字在线检查工具
- Django 开发笔记
- 快速入门Thinkphp框架
- 数据结构的重要性