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