1.Nginx

centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。关于Systemd的详情介绍在这里。

Systemd服务文件以 .service结尾,比如现在要建立nginx为开机启动,如果用yum install命令安装的,yum命令会自动创建nginx.service文件,直接用命令:

systemcel enable nginx.service

设置开机启动即可。

用源码编译安装的,所以要手动创建nginx.service服务文件。
开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:
在系统服务目录(/lib/systemd/system/)里创建nginx.service文件

vi /lib/systemd/system/nginx.service

 内容如下:

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

参数解释:

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

再使用如下命令激活自启

systemctl enable nginx.service

2.NFS

nfs服务端:

chkconfig nfs on

chkconfig rpcbind on

systemctl enable rpcbind.service

systemctl enable nfs-server.service

nfs客户端:

vi /etc/fstab
192.168.1.210:/home/bbs /home/bbs nfs rw,tcp,intr 0 1

3.sh脚本

Java启动脚本

新建auto.sh

#!/bin/bash
echo "pc端开始休眠"
sleep 60
nohup java -jar /home/test.jar --server.port=8888 --spring.profiles.active=prod > /dev/null 2>&1 &

此脚本不要放在nfs共享目录,加上sleep延时启动,确保nfs启动成功后再启动java脚本.

授权

chmod +x auto.sh

把脚本加入/etc/rc.d/rc.local

vi /etc/rc.d/rc.local

在脚本最后加上

export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
nohup /home/auto.sh &

 这里特别要注意:因为我们java的环境是后启动的。所以如果要运行javaweb项目,则需要把JDK的初始化配置文件在这里重新定义一下。

同时这里要注意一下,脚本的启动要使用nohup的方式。防止关闭窗口后,服务也自动关停。

启动/停止/查看启动的结果:

systemctl start rc-local
systemctl stop rc-local
systemctl status rc-local

授权

chmod +x /etc/rc.d/rc.local

reboot测试

4.mysql

rpm安装方式,设置自启

systemctl enable mysqld.service

另附systemctl常见命令

启动一个服务:systemctl start test.service
关闭一个服务:systemctl stop test.service
重启一个服务:systemctl restart test.service
显示一个服务的状态:systemctl status test.service
开机自启服务:systemctl enable test.service
开机禁用自启服务:systemctl disable test.service
查看服务是否开机启动:systemctl is-enabled test.service;echo $?
查看已启动的服务列表:systemctl list-unit-files|grep enabled