Linux命令:后台运行程序、批处理、开机运行让程序
Linux命令:后台运行程序、批处理、开机运行让程序在后台运行 #
用户有时的程序有可能要耗费好多时间,假如将它置于前台运行,将造成难以继续做其他事情,最好的方式就是将它置于后台运行,甚至可能希望在用户注销系统后开机运行命令,程序还可以继续运行。让我们瞧瞧那怎么实现这一目的。
1,在后台运行程序的&、bg命令
#
将程序放在后台运行的最简单方式就是在命令最后加上“&”,范例如下: #
[tony@freeroot]#&←在后台执行数据库更新命令 #
[tony@freeroot]#bg←将更新操作放在后台运行 #
2,前台运行的程序fg命令
#
假如用户当前已有程序在后台运行,可以输入fg命令,将它从背景中移到前台运行:
[tony@freeroot]#fg←放到前台执行的命令会显示下来
3,在退出后让程序继续运行的nohup命令 #
此命令可使用户退出系统后,程序继续运行。范例如下: #
[tony@freerony]$nohup& #
之后用户就可以退出了,当再度登陆的时侯,可以用ps–aux命令见到程序仍在后台中运行。 #
linux批处理即将执行的命令装入文本文件开机运行命令,如
#
rm-fv*.o;ls-al; #
(可以写一些shell普通命令,命令用分号隔开) #
之后改变文件属性为可执行即可
#
2.执行方式
#
(1)在控制台输入: #
shclean #
(2)先给予脚本可执行权限: #
chmod777clean #
之后直接执行: #
./clean #
linux手动运行程序1.开机启动时手动运行程序 #
Linux加载后,它将初始化硬件和设备驱动,之后运行第一个进程init。init按照配置文件继续引导过程,启动其它进程。一般情况下,更改放置在/etc/rc或/etc/rc.d或/etc/rc?.d目录下的脚本文件,可以使init手动启动其它程序。诸如:编辑/etc/rc.d/rc.local文件,在文件最末加上一行“xinit”或“”,可以在开机启动后直接步入X-。 #
2.登陆时手动运行程序 #
用户登入时,bash首先手动执行系统管理员构建的全局登陆:/ect/。之后bash在用户起始目录下按次序查找三个特殊文件中的一个:/.、/.、/.,但只执行最先找到的一个。 #
因而,只需依据实际须要在上述文件中加入命令就可以实现用户登入时手动运行个别程序(类似于DOS下的.bat)。
3.退出登入时手动运行程序 #
退出登入时,bash手动执行个人的退出登入脚本/.。比如,在/.中加入命令“tar-cvzfc..tgz*.c”,则在每次退出登入时手动执行“tar”命令备份*.c文件。 #
4.定期手动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检测/var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这种文件中的命令。用户可以通过命令来构建、修改、删除那些命令文件。
比如,构建文件,内容为“00923Jan*”,运行“”命令后,每每元月23日下午9:00系统手动执行“”的程序(“*”表示不管当日是礼拜几)。 #
5.定时手动运行程序一次
#
定时执行命令at与crond类似(但它只执行一次):命令在给定的时间执行,但不手动重复。at命令的通常格式为:at[-ffile]time,在指定的时间执行file文件中所给出的所有命令。也可直接从鼠标输入命令: #
$at12:00
at>Roger-s″Havealunch″
at>Ctr-D #
Job1at2000-11-0912:00 #
2000-11-0912:00时侯手动发一标题为“Havealunch”,内容为plan.txt文件内容的电邮给Roger。?912:00
2000-11-0912:00时侯手动发一标题为“Havealunch”,内容为plan.txt文件内容的电邮给Roger。er。ger。er。
#
linux下的服务:1、
是拿来让使用者在固定时间或固定间隔执行程序之用 #
在linux平台上假如须要实现任务调度功能可以编撰cron脚本来实现。 #
以某一频度执行任务
linux缺省会启动crond进程,crond进程不须要用户启动、关闭。
#
crond进程负责读取调度任务并执行,用户只须要将相应的调度脚本写入cron的调度配置文件中。 #
cron的调度文件有以下几个: #
1.
#
2.cron.d #
3.cron.daily
4.cron.
#
5.cron. #
6.cron. #
假如用的任务不是以形式执行,则可以将相应的写入到或cron.d目录中。
#
示例:
每隔一分钟执行一次脚本/opt/bin/test-cron.sh #
可以在cron.d新建脚本echo-date.sh #
内容为 #
*/1****root/opt/bin/test-cron.sh
2、cron
是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。因为Cron是Linux的外置服务,假如它不手动上去,可以用以下的方式启动、关闭这个服务: #
/sbin/crondstart//启动服务
/sbin/crondstop//关掉服务 #
/sbin/crond//重启服务
#
/sbin/crond//重新载入配置
#
你也可以将这个服务在系统启动的时侯手动启动:
#
在/etc/rc.d/rc.local这个脚本的末尾加上:
#
/sbin/crondstart
#
如今Cron这个服务早已在进程上面了,我们就可以用这个服务了 #
查看服务是否早已运行用ps-ax|grepcron #
3、命令查看该用户下的服务是否创建成功,用-l命令 #
命令whichphp查看linux下安装的php的路径 #
cron服务提供命令来设定cron服务的,以下是这个命令的一些参数与说明: #
-u//设定某个用户的cron服务,通常root用户在执行这个命令的时侯须要此参数 #
-l//列举某个用户cron服务的详尽内容
#
-r//删掉没个用户的cron服务 #
-e//编辑某个用户的cron服务 #
例如说root查看自己的cron设置:-uroot-l
#
再比如,root想删掉fred的cron设置:-ufred-r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:-uroot-e
步入vi编辑模式,编辑的内容一定要符合下边的格式:*/1****ls>>/tmp/ls.txt
#
任务调度的crond常驻命令crond是linux拿来定期执行程序的命令。当安装完成操作系统以后,默认便会启动此 #
任务调度命令。crond命令每分锺会定期检测是否有要执行的工作,假如有要执行的工作便会手动执行该工作。
命令选项:
-u指定一个用户
-l列举某个用户的任务计划 #
-r删掉某个用户的任务
-e编辑某个用户的任务 #
4、cron文件句型:分小时日月礼拜命令 #
0-590-231-311-120-6(取值范围,0表示周末通常一行对应一个任务) #
记住几个特殊符号的含意: #
“*”代表取值范围内的数字,
#
“/”代表”每”,如每2分钟:*/2
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字 #
5、任务调度设置文件的写法
可用-e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接更改/etc/文件 #
具体格式如下: #
HourDayMonth #
分钟小时天月天每礼拜命令 #
每位数组代表的涵义如下: #
每位小时的第几分钟执行该任务
#
Hour每晚的第几个小时执行该任务
#
Day每月的第几天执行该任务
#
Month每年的第几个月执行该任务
每周的第几天执行该任务
#
指定要执行的程序 #
在这种数组里,不仅“”是每次都必须指定的数组以外,其它数组皆为可选 #
数组,可视须要决定。对于不指定的数组,要用“*”来弥补其位置。
#
举例如下:
#
5****ls指定每小时的第5分钟执行一次ls命令
#
305***ls指定每晚的5:30执行ls命令 #
3078**ls指定每月8号的7:30分执行ls命令 #
30586*ls指定每年的6月8日5:30执行ls命令 #
306**0ls指定每礼拜日的6:30执行ls命令[注:0表示礼拜天,1表示礼拜1,
#
以这种推,也可以用英语来表示,sun表示礼拜天,mon表示礼拜一等。] #
30310,20**ls每月10号及20号的3:30执行ls命令[注:“,”用来联接多个不连续的时段]
258-11***ls每晚8-11点的第25分钟执行ls命令[注:“-”用来联接连续的时段] #
*/15****ls每15分钟执行一次ls命令[即每位小时的第015304560分钟执行ls命令] #
306*/10**ls每位月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。]
#
每晚7:50以root身分执行/etc/cron.daily目录中的所有可执行文件 #
507***rootrun-parts/etc/cron.daily[注:run-parts参数表示,执行前面目录中的所有可执行文件。]6、新增调度任务 #
新增调度任务可用两种方式: #
1)、在命令行输入:-e之后添加相应的任务,wq读档退出。 #
2)、直接编辑/etc/文件,即vi/etc/,添加相应的任务。 #
7、查看调度任务-l//列举当前的所有调度任务 #
-l-ujp//列举用户jp的所有调度任务
8、删除任务调度工作-r//删掉所有任务调度工作
#
9、任务调度执行结果的转向例1:每晚5:30执行ls命令,并把结果输出到/jp/test文件中
305***ls>/jp/test2>&1
注:2>&1表示执行结果及错误信息。