进程的启动方式
-
手工启动: 前台启动:用户输入命令,直接执行 后台启动:在输入命令尾部加入‘&’符号 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