CentOS7 设置自启动
本文最后更新于 930 天前,其中的信息可能已经有所发展或是发生改变。

CentOS7 设置自启动

在CentOS 6中,可以通过在/etc/init.d/添加自启动脚本来设置自启动;

在CentOS 7中,设置自启动的方法发生了改变:虽然我们仍然可以使用脚本来添加自启动,但是官方更建议使用服务来设置自启动

通过配置系统服务来设置自启动

以Docker为例:

安装完二进制的Docker之后,把Docker服务设置成自启动:

进入/etc/systemd/system/目录,并创建docker.service文件

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
# ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=ip
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

其中:

  • After:代表要在其他的某些程序完成之后再执行;
  • Type:代表服务执行顺序和方式;
    • Type=simple(默认值):systemd认为该服务将立即启动,服务进程不会fork,如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型;
    • Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功;对于常规的守护进程(daemon);使用此启动类型应同时指定 PIDFile,以便systemd能够跟踪服务的主进程;
    • Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务;可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态;
    • Type=notify: 与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号;这一通知实现由 libsystemd-daemon.so 提供;
    • Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪;
    • Type=idle: 服务会延迟启动,一直到其他服务都启动完成之后才会启动此服务;
  • WantedBy代表启动目标;
  • target是一个类似而又不同于启动级别(runlevel)的概念

给docker.service文件添加执行权限

chmod +x /etc/systemd/system/docker.service

重新加载配置文件:systemctl daemon-reload

通过自启动脚本来设置

echo "source /etc/profile && cd /usr/local/src/emqx/bin && sudo ./emqx start"  >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

在CentOS 7中/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行的脚本是不能启动一些服务的,执行下面的命令将文件标记为可执行的文件:

虽然两种方法都可以设置自启动,但是不建议通过脚本来设置,建议通过设置服务来启动;

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇