参考:https://www.cnblogs.com/downey-blog/p/10473939.html

之前没有研究过一直感觉有好几种方式开机自启搞得乱七八糟的,今个好好整理了一下,决定采用systemctl方式自启,这种是官方最近比较倡导的方式

  • 方式一:在rc.local脚本中添加
  • 方式二:将脚本添加到/etc/init.d
  • 方式三:设置systemctl方式开机自启(本文就是这种)

首先检查下你的系统支不支持systemd

[root@localhost systemd]# systemctl --version
systemd 219
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN

如果有以上输出就说明支持。

以下步骤以mongodb为例:

vim /lib/systemd/system/mongodb.service

注释:[Unit]/[Service]/[Install]这三个标签需要保留。
例子是mongo:

[Unit] 
   

Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service] Type=forking ExecStart=/mnt/app/mongodb/bin/mongod --config /mnt/app/mongodb/mongodb.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/mnt/app/mongodb/bin/mongod --shutdown --config /mnt/app/mongodb/mongodb.conf PrivateTmp=true

[Install] WantedBy=multi-user.target

例子是mysql:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install] WantedBy=multi-user.target

[Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld LimitNOFILE=5000

chmod a+x /lib/systemd/system/mongodb.conf// 暂时不用这个
systemctl enable mongodb.service  // 使生效
报告:Created symlink /etc/systemd/system/multi-user.target.wants/test.service → /usr/lib/systemd/system/test.service.  
// 最后
systemctl [start|stop|status] mongodb.service   	// 启动服务

这里在/etc/systemd/system/multi-user.target.wants/目录下创建了一个/usr/lib/systemd/system/mongodb.service文件的软链接,到这里设置开机自启动就完成了。