说明¹:socket:套接字,它是计算机之间进行通信的一种约定或一种方式,是进行网络连接的一种工具。通过socket这种约定
,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。UNIX/Linux程序在执行任何形式的I/O操作时,都是
在读取或者写入一个文件描述符(fd)。一个文件描述符只是一个和打开的文件相关联的整数,它的背后可能是一个硬盘上的普
通文件、FIFO、管道、终端、键盘、显示器,甚至是一个网络连接,其中网络连接也是一个文件,它也有文件描述符。我们可以
通过socket()函数来创建一个网络连接,或者说打开一个网络文件,socket()的返回值就是文件描述符。有了文件描述符,我
们就可以使用普通的文件操作函数来传输数据了,例如:
• read()函数:读取从远程计算机传来的数据;
• write()函数:向远程计算机写入数据;
• listen()函数:让套接字进入被动监听状态;
• accept()函数:接收客户端请求;
• bind()函数:将套接字与特定的IP地址和端口绑定;
• connect()函数:与客户端建立连接;
……
配置文件目录:
• /usr/lib/systemd/system
• /run/systemd/system
• /etc/systemd/system
unit单元
|
文件扩展名
|
解释说明
|
Service unit
|
.service
|
定义系统服务
|
Target unit
|
.Target
|
用于模拟实现"运行级别", 其实是一群unit的集合
|
Device unit
|
.device
|
定义内核识别的设备
|
Mount unit
|
.mount
|
定义文件系统挂载点
|
Socket unit
|
.socket
|
标识进程间通信用到的socket文件
|
Snapshot unit
|
.snapshot
|
管理系统快照
|
Swap unit
|
.swap
|
标识swap设备
|
Automount unit
|
.automount
|
文件系统自动挂载点设备
|
Path unit
|
.path
|
定义文件系统中的一个文件或目录
|
动作
|
CentOS 6
|
CentOS 7
|
启动
|
service NAME start
|
systemctl start NAME.service
|
停止
|
service NAME stop
|
systemctl stop NAME.service
|
重启
|
service NAME restart
|
systemctl restart NAME.service
|
状态
|
service NAME status
|
systemctl status NAME.service
|
条件式重启
|
service NAME condrestart
|
systemctl try-restart NAME.service
|
重载或重启
|
--
|
systemctl reload-or-restart NAME.service
|
重载或条件式重启
|
--
|
systemctl reload-or-try-restart NAME.service
|
查看某服务当前激活与否的状态
|
--
|
systemctl is-active NAME.service
|
查看所有已激活的服务
|
--
|
systemctl list-units --t service
|
查看所有服务(包含未激活)
|
chkconfig --list systemctl list-units -t NAME.service -a
|
|
设置服务开机自启
|
chkconfig NAME on
|
systemctl enable NAME.service
|
禁止服务开机自启
|
chkconfig NAME off
|
systemctl disable NAME.service
|
查看某服务是否能开机自启
|
chkconfig --list NAME
|
systemctl is-enabled NAME.service
|
禁止某服务设定为开机自启
|
--
|
systemctl mask NAME.service
|
取消此禁止
|
--
|
systemctl umask NAME.service
|
查看服务依赖关系
|
--
|
systemctl list-dependencies NAME.service
|
service命令语法:systemctl 参数 name[.service]
常用参数:
• start:启动服务
• stop:停止服务
• restart:重启或启动服务
• try-restart:若服务启动则重启,若服务未启动则不操作
• reload-or-restart:重载或重启服务
• reload-or-try-restart:重载或条件式重启服务
• mask:将服务链接至/dev/null,则服务无法进行开机自启的设定
• unmask:取消将服务链接至/dev/null
• enable:设置服务开机自启动
• disable:关闭服务开机自启动
• status:查询状态和最近状态日志
• is-active:查询服务当前是否启用
• is-enabled:查询服务是否开机自启
• list-dependencies:查询服务的依赖关系
• list-units --type service:查看所有已经启动的服务的信息
• list-units --type service --all:查看所有服务的信息
• list-unit-files --type service:查询所有服务的开机自启状态
运行级别
|
对应别名
|
服务名
|
|
sysvinit
|
systemd target
|
解释说明
|
0
|
runlevel0.target
|
poweroff.target
|
0
|
poweroff.target
|
关闭系统
|
|
1
|
runlevel1.target
|
rescue.target
|
1,s,single
|
rescue.target
|
单用户模式
|
|
2
|
runlevel2.target
|
multi-user.target
|
2,4
|
multi-user.target
|
用户定义/域特定运行级别。默认等同于3
|
|
3
|
runlevel3.target
|
multi-user.target
|
3
|
multi-user.target
|
多用户,非图形界面
|
|
4
|
runlevel4.target
|
multi-user.target
|
5
|
graphical.target
|
多用户,图形化界面
|
|
5
|
runlevel5.target
|
graphical.target
|
6
|
reboot.target
|
重启
|
|
6
|
runlevel6.target
|
reboot.target
|
emergency
|
emergency.target
|
紧急shell
|
target命令语法:systemctl 参数 name[.target]
常用参数:
• list-units --type:查看当前已装载的target
• isolate:切换当前的target文件
• rescue:切换到紧急救援模式
• emergency:切换到emergency模式,不加载驱动
• get-default:查看默认运行级别
• set-default:设置默认运行级别,设置/etc/systemd/system/default.target
systemd的unit文件通常由三部分组成:[Unit],[Service]和[Install]。
(1)[Unit]:定义与unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等;
• Description:描述信息;
• After:定义unit的启动次序;表示当前unit应该晚于哪些unit启动;其功能与Before相反;
• Requires:依赖的units,此为强依赖,当被依赖的units无法激活时,当前unit即无法激活;
• Wants:依赖的units,弱依赖;
• Conflicts:定义冲突关系;
(2)[Service]:与特定类型相关的专用选项,与unit类型相同,此处为service类型;
• Type:用于定义影响ExecStart及相关参数的功能的unit进程启动类型:
-simple:默认值,执行ExecStart指定的命令,启动主进程;
-forking:以fork方式从父进程创建子进程,创建后父进程会立即退出;
-oneshot:一次性进程,systemd会等当前服务退出,再继续往下执行;
-dbus:当前服务通过D-Bus启动;
-notify:当前服务启动完毕,会通知systemd再继续往下执行;
-idle:若有其他任务执行完毕,当前服务才会运行;
• EnvironmentFile:环境配置文件;
• ExecStart:指定启动unit要运行的命令或脚本;
其中ExecStartPre表示启动unit前运行的脚本或命令;ExecStartPost表示启动unit后要运行的命令或脚本;
• ExecStop:指明停止unit要运行的命令或脚本;
• Restart:指定;
(3)[Install]:定义由"systemctl enable|disable"命令在实现服务启动或禁用时用到的一些选项;
• Alias:别名;
• RequiredBy:该服务被哪些units所依赖;强依赖;
• WantedBy:该服务被哪些units所依赖;弱依赖;
命令
|
操作
|
systemctl reboot
|
重启机器
|
systemctl {halt| poweroff}
|
关机
|
systemctl suspend
|
挂起
|
systemctl hibernate
|
休眠
|
systemctl hybrid-sleep
|
混合休眠模式(快照并挂起)
|