linux通过crontab设置nginx nacos redis开机自启动

目录

[1.nginx redis开机启动](#1.nginx redis开机启动)

1.编辑crontab

2.添加启动脚本

redis

nginx

2.nacos开机启动

1.新建启动脚本

2.添加内容

3.设置脚本权限

4.配置crontab


在 Linux 环境下部署应用后,让服务(如 Nginx、Redis、Nacos)随系统启动自动运行是一项基础且重要的运维操作。虽然 systemd 是现代 Linux 推荐的标准服务管理方式,但 crontab@reboot 功能因其配置简单、易于理解,在某些场景下(特别是个人开发或小型项目)也是一种高效的选择。

本文将介绍如何利用 crontab 来实现常见服务的开机自启。

1.nginx redis开机启动

Nginx 和 Redis 的启动脚本通常较为轻量,不依赖复杂的外部环境变量(如 JAVA_HOME),因此可以直接通过 crontab 配置。

1.编辑crontab

  • crontab -e: 用于编辑当前用户的定时任务列表。

    crontab -e

2.添加启动脚本

  • @reboot: 这个特殊的时间表达式表示每当系统启动时,执行一次指定的命令。

redis

复制代码
@reboot cd /data/soft/redis9999/bin && ./redis-server redis.conf > /dev/null 2>&1 &

nginx

复制代码
@reboot sleep 5 && /usr/local/nginx/sbin/nginx > /usr/local/nginx/logs/nginx_cron_start.log 2>&1

2.nacos开机启动

nacos相对麻烦点,因为需要jdk环境,但是crontab默认不会去读取/etc/profile里面的JAVA_HOME,因此我们可以先建一个nacos的启动脚本,在里面配置环境变量

1.新建启动脚本

复制代码
vim start_nacos_with_env.sh

2.添加内容

复制代码
#!/bin/bash

# 设置Java环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 验证Java环境
echo "JAVA_HOME: $JAVA_HOME" >> /data/soft/nacos/logs/startup_cron.log
echo "PATH: $PATH" >> /data/soft/nacos/logs/startup_cron.log
java -version >> /data/soft/nacos/logs/startup_cron.log 2>&1

# 等待系统就绪
sleep 10

# 启动Nacos
cd /data/soft/nacos/bin
nohup ./startup.sh -m standalone >> /data/soft/nacos/logs/startup_cron.log 2>&1 &

为 Nacos 创建一个独立的启动脚本,在脚本内部设置所需的环境变量。

3.设置脚本权限

复制代码
sudo chmod +x start_nacos_with_env.sh 

4.配置crontab

复制代码
@reboot nohup /usr/sh/start_nacos_with_env.sh > /dev/null 2>&1 &

3.验证

1.重启

复制代码
reboot

2.检查服务状态

系统重启后,登录并检查服务进程是否运行:

复制代码
ps -ef | grep -E "(nginx|redis|nacos)"

3.查看日志

如果服务未能正常启动,检查相应的日志文件:

  • Nacos: tail -f /data/soft/nacos/logs/startup_cron.log
  • Nginx: tail -f /usr/local/nginx/logs/nginx_cron_start.log
  • Redis: 检查 redis.conflogfile 指定的路径。
相关推荐
inkuu26 分钟前
WSL启动慢问题分析与修复
linux
像风一样自由202033 分钟前
29.Redis在大模型应用中有哪些用途缓存会话与限流
数据库·人工智能·redis·缓存·大模型·milvus·智能体
JJJennie7772 小时前
MAI Gateway技术揭秘:大模型网关能做什么?从原理到落地
linux·服务器·网络·ai网关
weixin_460443564 小时前
考试监控大屏为什么不能直接查数据库?WebSocket、Redis与实时数据聚合架构设计
数据库·redis·在线考试系统·培训考试系统·煤矿培训考试系统·煤矿在线考试系统·宏远培训考试系统
风哥2号5 小时前
数据库教程FGMT02‑生产环境Linux+Oracle19c安装配置与项目实战
linux·数据库·ffmpeg
wuminyu8 小时前
Kafka中sendfile与mmap实现机制解析
java·linux·c语言·jvm·c++
新时代牛马8 小时前
嵌入式网络完整篇:从LwIP/以太网驱动到 Linux netdev 与排障
linux·网络·php
猿与禅9 小时前
Linux(Ubuntu)入门到实战:系统管理、常用命令与权限体系完整指南
linux·ubuntu·apt·进程管理·系统运维·用户权限·vi/vim
前端世界9 小时前
Linux服务器实战:NTP时间同步、SELinux权限与rsyslog日志管理,一次搞懂三大运维问题
linux·运维·服务器
Android系统攻城狮9 小时前
Linux Gstreamer深度解析之gst_audio_converter_new调用流程与实战(二十)
linux·运维·服务器·gstreamer音视频·音视频进阶