记录一ubuntu22.04做开机启动mysql、nginx、redis
设了好几种办法,这是我测试成功的
原理:
自定义服务文件,添加到系统服务,通过Systemctl管理
一、配置启动脚本
先在cd /www/目录下新建脚本 ( 这是我放的启动目录,你们随意)
vim startup.sh
内容:
#!/bin/bashsource /etc/profile #先加载环境变量
/etc/init.d/mysqld start #启动mysql
/usr/local/nginx/sbin/nginx #启动nginxbash /www/python/run.sh #启动pythoncd /usr/local/redis-7.2.4
/usr/local/redis-7.2.4/src/redis-server /usr/local/redis-7.2.4/redis.conf &
cd /www/java
bash start_java.sh #启动java
给脚本权限
chmod +x startup.sh
将要开机启动的服务都放一个脚本里面(你说为什么不做成服务开机启动,tar包编译安装的,添加服务添加了半天也没加上,要不就是加上不起作用。。。。索性就都放一个里面启动吧)
先测试上面的脚本能正常启动,我是一个一个试的,都成功了再放一块。
二、添加到系统服务
sudo vim /lib/systemd/system/startup.service
[Unit]
Description=startup service
After=network.target network-online.target syslog.target
Wants=network.target network-online.target[Service]
Type=simple#启动服务的命令(命令必须写绝对路径)
ExecStart=bash /www/startup.sh[Install]
WantedBy=multi-user.target
命令只写了启动的。
三、添加开机自启
systemctl enable startup.service
然后就是重启。