linux开机自动启动sh脚本

本文介绍了如何将一个sh脚本设置为Linux开机启动,包括尝试将脚本添加到rc.local以及使用crontab进行设置。在rc.local中设置失败,原因是脚本依赖的Java环境未被加载。最终通过crontab成功实现开机启动,并解决了找不到Java环境的问题,方法是在脚本中添加`source /etc/profile`来确保环境变量生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

我的sh文件目录:/home/java/start.sh

我的sh文件内容:

一、将sh文件写入/etc/rc.d/rc.local(最终失败了,这个文件死活开机不运行,知道的道友麻烦教一下)

1、给sh文件添加可执行权限

2、将脚本添加到rc.local最后一行

3、添加可运行权限

4、重启

二、使用 crontab(成功)

1、通过 crontab -e 来设置

2、问题

3、解决问题


我的sh文件目录:/home/java/start.sh

我的sh文件内容

#!/bin/bash

# 1. 检查程序的运行状态,避免重复启动
kill_pid=`ps -ef | grep java | grep  "SESAN_YN_public_health-1.0.0" | grep -v grep | awk '{print $2}'`
if [ -n "${kill_pid}" ]
then
        echo "pid = "${kill_pid}
    echo "SESAN_YN_public_health-1.0.0 程序正在运行中,请勿重复启动"
    exit 1
fi

# 2. nohup  后台运行脚本
nohup java -jar /usr/local/etc/SESAN_YN_public_health-1.0.0.jar >nohup.out  2>&1  &

# 3. 显示日志
tail -200f ./nohup.out

一、将sh文件写入/etc/rc.d/rc.local(最终失败了,这个文件死活开机不运行,知道的道友麻烦教一下)

1、给sh文件添加可执行权限

$ cd /home/java
chmod +x start.sh

2、将脚本添加到rc.local最后一行

$ vim /etc/rc.d/rc.local
 
/home/java/start.sh

3、添加可运行权限

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

4、重启

$ sudo reboot

二、使用 crontab(成功)

1、通过 crontab -e 来设置

$ crontab -e
 
@reboot /home/java/start.sh

2、问题

这样我运行还是失败:失败原因通过cat查看错误日志

$ cat /var/spool/mail/root

错误原因:找不到java环境

nohup: failed to run command ‘java’: No such file or directory

3、解决问题

运行jar包前 source /etc/profile

# 2. nohup  后台运行脚本
source /etc/profile
nohup java -jar /usr/local/etc/SESAN_YN_public_health-1.0.0.jar >nohup.out  2>&1  &

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值