设置添加开机自启服务 及系统服务systemd

一、添加开机自启服务
CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,/usr/lib/systemd/system目录下每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]
#vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target

文件内容解释 :
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
**[Service]**服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
**[Install]**服务安装的相关设置,可设置为多用户


[Service]
Type= 可以包含的值为simple、forking、oneshot、dbus、notify、idel其中之一。
simple:表示ExecStar=进程是该服务的主进程;
forking:表示ExecStar=进程将会在启动时使用fork()函数,fork出来的进程作为服务的主进程继续运行,此类型的进程,建议设置PIDFile=选项,以帮助systemd准确定位该服务的主进程;
oneshot:该进程会在systemd启动后续单元之前退出,适用于仅需要执行一次的程序。
dbus:该进程需要在D-Bus上获得一个由BusName=指定的名称,systemd将会在启动后续单元之前,首先确保该进程已经成功的获取了指定D-Bus名称。
notify:与simple类似,不同之处在于该进程会在启动完成之后通过sd_notify之类的接口发送一个通知消息。
idel:与simple类似,不同之处在于该进程将会被延迟到所有操作都完成之后在执行。
ReaminAfterExit= 当该服务的所有进程都退出之后,是否依然将此无视为活动的,默认为no。
GuessMainPID= 在没有设置PIDFile=值的时候,systemd是否要猜测主进程的PID。默认是yes。
PIDFile=守护进程的PID文件,必须是绝对路径,强烈建议在Type=forking的情况下明确设置此选项。
WorkingDirectory=设置进程的工作目录。
ExecStart=设置启动服务是要执行的命令(命令+参数)。
ExecStop= 设置当该服务被要求停止时所执行的命令行
Environment= 设置进程的环境变量, 值是一个空格分隔的 VAR=VALUE 列表。


设置开机自启:(前提具备以.service 结尾的服务文件)
#systemctl enable nginx.service
查看所有已启动的服务:
systemctl list-units --type=service

二 、添加开机自启脚本
先写一个tomcat自启的脚本:#vim autostart.sh
#!/bin/bash
#description:开机自启脚本
/usr/local/tomcat/bin/startup.sh #启动tomcat
方法一:

  1. 赋予脚本可执行权限(/opt/script/autostart.sh是你的脚本路径)
    #chmod +x /opt/script/autostart.sh
  2. 打开/etc/rc.d/rc/local文件,在末尾增加如下内容
    /opt/script/autostart.sh
  3. 赋予/etc/rc.d/rc.local其可执行权限
    #chmod +x /etc/rc.d/rc.local

三 、系统服务 systemd
systemd进程将作为所有进程的父进程运行,这就是在CentOS 7中的新的进程管理程序,systemd进程的PID为1。
系统提供两种级别的单元:
1)系统单元:在/lib/systemd/system目录中,优先级高于用户单元。
2)用户单元:在/usr/lib/systemd/system目录中

列出系统所有单元:
#systemctl list-unit-files
单元类型(STATE)表示:enabled表示开机启动,disabled表示开机不启动,至于static则对应Unit文件中没有定义[install]区域,因此无法设置为开机启动。
查看某一类型的单元:
#systemctl list-unit-files --type=类型


常用的Target有:
名称 说明
basic.target 启动基本系统,该目标间接包含了所有的本地挂载点单元以及其他必须的系统初始化单元。
ctrl-alt-del.target 当在控制台按下Ctrl+Alt+Del组合键时要启动的单元。
default.target 默认的启动目标,通常指向multi-user.target或者graphical.target的目标。
graphical.target 专用于启动图形化登陆界面的目标单元,其中包含了multi-user.target单元。
hibernate.target 专用于系统休眠到硬盘时启动的单元。
halt.target 专用于关闭系统单不切断电源时启动的单元。
local-fs.target 专用于集合本地文件系统挂载点的目标单元。
multi-user.target 专用于多用户且为命令行模式下启动的单元。所有用于要在命令行多用户模式下启动的单元,其 [Install]段都应该加上WantedBy=multi-user.target指令。
reboot.target 专用于重启系统时需要需要启动的单元。
rescure.target 专用于启动基本系统并打开一个救援shell时需要启动的单元。
shutdown.target 专用于在关机过程中关闭所有的单元。
sleep.target 专用于进入休眠状态的目标单元。
timers.target 专用于包含所有应该在系统启动时被启动的timer单元。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值