在CentOS 7上利用systemctl添加自定义系统服务

本文介绍了如何在CentOS 7上利用systemctl创建自定义系统服务,以Node.js项目为例,通过编写.service脚本并在/usr/lib/systemd/system目录下配置,实现开机自启动。详细阐述了服务脚本的组成部分,包括[Unit]、[Service]和[Install],并提供了服务启动、测试和开机启动的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多。


下面我们以利用forever来实现Node.js项目自启动为例,初探CentOS 7的systemctl。


前提:Node.js环境已配置成功,forever包安装成功,有一个能跑的Node.js程序。


CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下

每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],我写的这个服务用于开机运行Node.js项目,具体内容如下:

[Unit]
Description=xiyoulibapi
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/node.js/pid
ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www
ExecReload=/usr/local/bin/forever
### 提高内存利用率的软件及其在CentOS 7上的部署 #### 软件推荐 为了提高内存利用率,可以选择一些专门优化内存管理的工具或技术。以下是几个常见的选项: 1. **ZRAM**: ZRAM 是一种压缩 RAM 的机制,它通过将数据存储到压缩后的块设备中来减少物理内存占用。这种方法特别适合于内存有限的环境[^1]。 2. **Swap 文件调整**: Swap 是硬盘的一部分空间用于扩展内存容量的技术。合理设置 swap 可以有效缓解内存不足的情况。虽然 swap 不会提升性能,但它能防止因内存耗尽而导致的服务中断[^3]。 3. **Tuned 性能调优框架**: Tuned 是一个动态系统调优守护进程,可以根据不同的工作负载自动调整系统的运行参数。其中某些预定义配置文件能够针对特定场景(如虚拟化、数据库等)优化内存使用效率[^4]。 --- #### 部署方法 ##### 方法一:启用并配置 ZRAM (适用于低内存情况) 1. 安装必要的依赖包 使用 `yum` 命令安装 zram-generator 工具: ```bash yum install -y zram-generator ``` 2. 创建配置文件 `/etc/systemd/zram-generator.conf` 并编辑其内容如下: ```ini [zram0] zram-size = ram/2 # 设置为总内存的一半作为交换分区大小 compression-algorithm = lzo # 或者尝试其他算法比如 lz4 fs-type = tmpfs # 推荐使用tmpfs类型文件系统 mount-point = /mnt/zram0 # 自定义挂载路径 max-swap-priority = 10 # 设定优先级高于传统swap区域 ``` 3. 启动服务并验证状态: ```bash systemctl start zram_swap swapon --show # 查看当前激活的所有swap区信息 free -h # 显示总的可用内存状况 ``` --- ##### 方法二:创建与优化 SWAP 文件 如果硬件条件允许增加额外磁盘空间,则可以通过建立专用的 swap 分区或者单独分配一块固定大小的文件充当临时缓冲池角色从而间接达到节省实际使用的 DRAM 效果。 1. 创造一个新的空白文件当作新的 swapfile: ```bash dd if=/dev/zero of=/swapfile bs=1M count=2048 # 这里我们指定的是2GB大小,可根据需求更改数值 chmod 600 /swapfile # 修改权限只让root访问该文件 mkswap /swapfile # 初始化这个新生成的对象成为合法有效的swap格式 ``` 2. 将新建好的对象加入现有的操作系统当中去发挥作用: ```bash swapon /swapfile # 开启刚才准备完毕的新资源供即时利用起来 echo '/swapfile none swap defaults 0 0' >> /etc/fstab # 添加至fstab确保重启之后仍然保持开启状态 sysctl vm.swappiness=10 # 减少Linux倾向于把缓存的数据写入disk而非保留更多空闲memory的机会比例值设得更低一点更佳些 ``` --- ##### 方法三:应用 TUNED 框架进行自动化调节 对于那些不确定具体业务模型下该如何手动微调各项指标的人来说,Tuned提供了简单易行的办法来进行全局性的改进措施实施. 1. 安装 tuned 和相关插件集合库: ```bash yum install tuned tuned-utils-plugins-* -y ``` 2. 查询支持哪些内置模式以及切换成最贴近自己应用场景的那个方案执行即可: ```bash tuned-adm list # 展示全部可选profile列表项名称 tuned-adm profile virtual-guest # 如果是在一台宿主机上面跑多个容器实例的话建议采用此模板样式 ``` 以上三种方式都可以不同程度上帮助改善 CentOS 7 上面遇到的各种因为缺乏足够的随机存取记忆体所引发出来的问题现象[^2]. ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值