Linux Systemd服务管理_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
3
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3769 | 回复: 2   主题: Linux Systemd服务管理        上一篇   下一篇 
landy
注册用户
等级:新兵
经验:61
发帖:72
精华:0
注册:2011-12-31
状态:离线
发送短消息息给landy 加好友    发送短消息息给landy 发消息
发表于: IP:您无权察看 2016-2-29 15:22:06 | [全部帖] [楼主帖] 楼主

systemd是Linux下的一种init软件, 较好地管理多个系统服务之间的并行启动和依赖,同时达到降低系统开销的效果,最终代替现在常用的System V与BSD风格init程序。新发行的RHEL 7也用systemd来取代了sysV来管理服务。Systemd中对系统的配置有大量改变,例如在Systemd中hostname可以在/etc/hostname中设置,而非rc.conf中的HOSTNAME环境变量等。本文先简单介绍一下systemd下服务的简单配置。

与多数发行版使用的System V风格init相比,systemd借鉴了OSX中的服务管理系统launchd,减少了对Shell脚本的依赖。有下面一些新特性:
采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;
用cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
在sysV时代,chkconfig / service 是我们经常使用的服务管理程序,在RHEL 7中这一组命令替换为systemctl来实现。fedora的文档中指出了SysVinit to Systemd Cheatsheet, 常用的有下面几点:

# 是否让服务开机运行
[root@localhost] systemctl disable mariadb.service
[root@localhost] systemctl enable mariadb.service
ln -s ‘/usr/lib/systemd/system/mariadb.service’ ‘/etc/systemd/system/multi-user.target.wants/mariadb.service’
# 检查服务开机是否启动
# 启用的服务会在/etc/systemd/system/*.wants下建立符号连接,所以也可以直接检查文件:
[root@localhost] systemctl is-enabled mariadb.service
disabled
[root@localhost] ls /etc/systemd/system/*.wants/mariadb.service
/etc/systemd/system/multi-user.target.wants/mariadb.service
# 检查当前服务的列表(功能类似之前chkconfig –list)
[root@localhost] systemctl list-unit-files –type=service
也可以使用:
[root@localhost] ls /etc/systemd/system/*.wants/
# 当新增或者修改配置文件后,可以让systemd的守护进程重新加载服务配置
[root@localhost] systemctl daemon-reload
# 启动和停止服务
[root@localhost] systemctl start mariadb.service
[root@localhost] systemctl stop mariadb.service
[root@localhost] systemctl restart mariadb.service
[root@localhost] systemctl condrestart mariadb.service #如果服务在运行则重启
# 重载服务的应用配置文件,需要服务的自身支持。例如iptables可以重新载入rules
[root@localhost] systemctl reload iptables.rules
# 检查服务状态
# 与service命令不同的是,systemctl status不仅提供了当前服务的进程信息,还在start, reload失败等情况发生时提供错误的日志,可以更快解决服务的故障。
[root@localhost] systemctl status mariadb.service
mariadb.service – MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)
Active: failed (Result: exit-code) since Fri 2014-08-01 15:30:01 CST; 1min 24s ago
……
Aug 01 15:30:00 localhost.localdomain mysqld_safe[8706]: /usr/bin/mysqld_safe: line 138: /var/log/mysql/mysql.log: Permi…nied
# 显示系统启动失败的服务
# systemctl –failed
UNIT LOAD ACTIVE SUB DESCRIPTION
iptables.service loaded failed failed IPv4 firewall with iptables
mariadb.service loaded failed failed MariaDB database server




--转自



赞(0)    操作        顶端 
twany
注册用户
等级:少校
经验:1408
发帖:17
精华:0
注册:2015-6-2
状态:离线
发送短消息息给twany 加好友    发送短消息息给twany 发消息
发表于: IP:您无权察看 2016-3-8 9:32:21 | [全部帖] [楼主帖] 2  楼

好东西,分享了



赞(0)    操作        顶端 
jinggege
注册用户
等级:中士
经验:241
发帖:0
精华:0
注册:2016-2-26
状态:离线
发送短消息息给jinggege 加好友    发送短消息息给jinggege 发消息
发表于: IP:您无权察看 2016-3-11 10:01:29 | [全部帖] [楼主帖] 3  楼

我来补充一下如何修改Linux的hostname。

1、临时修改主机名:
$ sudo hostname 主机名
修改只能临时有效,机器重启后会自动还原。

2、永久修改主机名:
修改hostname文件(路径:/etc/hostname):
$ sudo nano /etc/hostname
把hostname文件里面所有原来的名称改成你想改成的名称。
主机名同时也保存在/etc/hosts文件中,需要把当前IP地址对应的主机名修改为hostname文件中的名称。
$ sudo nano /etc/hosts
最后重启机器:
$ reboot



赞(0)    操作        顶端 
总帖数
3
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论