纠结了很久,终于决定和CentOS6说拜拜,主要还是对新的systemd比较感兴趣,确实使用起来很方便。同时也是彻底抛弃WordPress的时候了,这个庞然大物用起来越发的觉得不痛快了。主要原因还是并不能原生支持纯粹的Markdown写作,而团队已经开始大量使用Markdown来撰写文档了。
切换过程
切换之前当然要对之前博客里的数据做个备份了,直接设置里导出XML完事,图片都不要了(主要还是因为懒得搞)。
VPS ChangeOS
直接在VPS后台ChangeOS即可,数据会被清空,一般5分钟内搞定,就可以登录开始配置了。
安装软件
- shadowsocks
- openresty
- git
- nodejs
- hexo
额外优化和安全配置
- 添加用户
- 修改ssh端口,禁止root用密码登录
- 添加swap空间大小
初探systemd
CentOS 7 使用systemd替换了SysV。Systemd目的是要取代Unix时代以来一直在使用的init系统。systemd的特性有:
- 支持并行化任务
- 同时采用socket式与D-Bus总线式激活服务
- 按需启动守护进程(daemon)
- 利用 Linux 的 cgroups 监视进程
- 支持快照和系统恢复
- 维护挂载点和自动挂载点
- 各服务间基于依赖关系进行精密控制
检视和控制systemd的主要命令是systemctl。该命令可用于查看系统状态和管理系统及服务。详见man systemctl。
systemctl常见用法
复杂的用法我们一般也用不着,就列几个常用的命令:
1 | # 立即激活service: |
添加自己的service
CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/
,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧。即:/usr/lib/systemd/system
目录下
每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]。
以nginx为例,我的nginx版本是openresty源码编译的,因此没有自带service配置,我们可以自己写一个。1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=Nginx an HTTP and reverse proxy server.
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/nginx
ExecStop=/usr/local/bin/nginx -s stop
ExecReload=/usr/local/bin/nginx -s reload
PrivateTmp=true
[Install]
WantedBy=multi-user.target
具体解释请看文档。从以上示例可以发现,我们无需再自己重复编写繁琐的init.d脚本,还是很方便的。
FireWall的常见用法
之前的防火墙用的是iptables,每次设置还得找教程,CentOS7默认使用firewalld作防火墙。
添加ssh端口,https端口都要用到,正好简单学习下。1
2
3
4
5
6
7
8
9
10# 开放端口
firewall-cmd --add-port=1234/tcp
# 关闭端口
firewall-cmd --remove-port=1234/tcp
# 永久开放端口
firewall-cmd --add-port=443/tcp --permanent
# 重新加载配置使其立即生效
firewall-cmd --reload
# 查看当前配置
firewall-cmd --list-all