进程的启动方式

  • 手工启动: 前台启动:用户输入命令,直接执行 后台启动:在输入命令尾部加入‘&’符号 jobs:查看处于后台的任务列表 fg:将处于后台的进程恢复到前台运行,需要指定任务序列号

  • 调度启动:

  • 使用at命令,设置在某个特定的时间点,执行一次任务(一次性计划任务)

  •  服务脚本:/etc/init.d/atd
    
    
      at命令:
     	格式:at [HH:MM] [yyyy-mm-dd]
     		在指定的日期,时间点自动执行预先设置好的一些命令操作
     	example:
     		[root@localhost ~]# at 8:50
     		at> echo 'hello World'<EOT>         --此处可以写多个任务,最终按ctrl+D提交
     		job 4 at Thu Aug 30 08:50:00 2018
     		[root@localhost ~]# atq      --查看计划任务列表,但不能查看具体信息
     		4	Thu Aug 30 08:50:00 2018 a root
    
  • 使用crontab命令,设置按固定的周期(如每天,每周,每月等等)重复执行预先设计好的计划任务

  • 服务脚本:/etc/init.d/crond

    主要配置文件: 全局配置文件:/etc/crontab 用户定义的设置文件:/var/spool/cron/用户名 管理cron计划任务: 管理计划任务: crontab -e [-u username] 查看计划任务: crontab -l [-u username] 清空计划任务: crontab -r [-u username]

       注:root用户可以管理所有计划任务,普通用户只能管理自身的计划任务
    

crontab任务的配置:

		分钟		小时		日期		月份		星期		command

		分钟:取值为0-59之间的任意整数
		小时:取值为0-23之间的任意整数
		日期:取值为1-31之间的任意整数
		月份:取值为1-12之间的任意整数
		星期:取值为0-7之间的任意整数,0和7代表周天
		command:要执行的脚本或者命令
		example:
			50 6 * * *  echo '早上好主人~'
			
		#时间数值的特殊表示方法:
			*   代表该范围内的任意时间
			,  代表间隔的多个不连续的时间范围 
			-   代表一个连续的时间范围
			/   代表间隔的时间频率

			example:
				周一到周五的每天下午五点半:   30 17  * *  1-5  command
				每周1,3,5的早上八点三十分:   30 8 * * 1,3,5   command
				8点到18点之间没隔2小时:      0  8-18/2  * * * command
				每隔三天:   				0 0  */3 * * command

	example:(一下例子用户均为root)
		1.每天早上7:50开启ssh服务,22:50关闭(systemctl start/stop sshd)
			50 07 * * *  systemctl start sshd
			50 22 * * *  systemctl stop sshd
		2.每周1,3,5的17:50打包备份/etc/httpd目录
			50 17 * * 1,3,5   tar -czvf  httpd.bak.gz  /etc/httpd
		3.每周六的早上7:30重启httpd服务
			30 7 * * 6    systemctl restart httpd
		4.用户natasha必须配置一个定时执行任务,每天在本地时间14:23时执行命令/bin/echo hana
			crontab     -e   -u  natasha
			23 14 * * *     /bin/echo  hana

服务(守护进程)

  • linux服务通常指一个或多个守护进程,守护进程是在执行各种任务的后台等待或运行的进程(利用socket套接字进行之间通信)

  • 系统服务:某些服务对象是系统自身或者说系统用户

  • 网络服务:提供给网络客户端使用,如:web服务(http),ftp…………………………

  • rhel7中管理服务—systemd:主要管用管理系统启动和服务进程,可以在启动时和运行中的系统上激活资源,服务器守护进程和其他进程

    systemd的特性: 1.并行化功能,提高系统启动速度 2.按需启动守护进程,而不需要单独的服务 3.自动服务依赖关系管理可以防止长时间超时

  • systemctl与systemd单元 systemctl命令用于管理各种类型的systemd对象,他们称之为单元 systemctl -t help

  • 常见单元类型: .service扩展名 代表系统服务,这种单元主要用于启动经常访问的守护进程 .socket扩展名 代表进程间通信的套接字 .path拓展名 代表路径单元

#系统的运行级别: 每种运行级别代表特定的操作模式,分为七个级别,分别用数字0-6表示

		 rhel7之前                                                   rhel7
	0   关机                                                          poweroff.target       关机
	1	单用户用户,主要用于系统修复			  rescue.target         救援模式
	2	不完全的命令行模式,不包含NFS		  multi-user.target   非图形界面的多用户方式
	3	完全命令行模式,标准字符界面			 multi-user.target   非图形界面的多用户方式
	4   系统保留										          multi-user.target   非图形界面的多用户方式
	5   图形模式						                          graphical.target    图形界面的多用户模式
	6   重启											             reboot.target	     重启

linux服务的管理:

  • rhel6服务管理: 命令:service 格式:service 服务名 start/stop/restart/status #设置服务是否开机自启: 命令:chkcongfig 格式:chkconfig 服务名 on/off [--level 运行级别] 查看服务随系统启动的状态: chkconfig --list [服务名]

  • rhel7服务管理(systemctl集成了service,chkconfig)

    • 格式: systemctl start/stop/status/restart/enable/disable 服务名

    表示服务状态的几个关键字: loaded:单元配置文件已经处理 active(running): 服务运行正常 active(exited): 已经成功完成一次性配置 active(waiting): 运行中,但正在等待事件 inactive:不在运行 enabled:将在系统启动时自启 disabled:不随系统开机自启 ststic:无法启用,但是可以由某一启用的单元自动启动

  • 常用systemctl命令: 查询所有单元状态: systemctl #查询服务单元状态: systemctl --type=service #查看任意服务单元状态 systemctl status sshd -l #判断某个服务单元是否活动: systemctl is-active sshd systemctl is-enabled sshd #查看所有单元的已启用和已禁用设置,也可以选择单元类型: systemctl list-unit-files --type=service #仅仅查看失败的服务: systemctl --failed --type=service