Linux开机rc.local不自启动执行脚本其他一些问题进行补充说明

Linux开机rc.local不自启动执行脚本其他一些问题进行补充说明

在上一篇,我们讲了Linux开机rc.local不自启动执行脚本问题的排查思路及问题解决

这一篇我们补充一些其他的问题

问题一:我怎么知道我rc.local里面的命令启动成功不成功呢,我怎么看相关的日志

  • 你可以查看系统日志文件/var/log/syslog或者/var/log/messages,查找rc.local相关的日志信息。你可以使用以下命令来查看:grep rc.local /var/log/syslog 或者 grep rc.local /var/log/messages —但是很难过,有些机器这一条不好使,看不见,如果你能看到那你很幸运
  • systemctl status rc-local.service,你能看到CGroup那下面树形状的那几个30717啊,30718啊这些启动成功的,后面跟的都是你在rc.local中配置的相关命令,这里就能很明显的看到你哪些启动成功了
    在这里插入图片描述
  • 主动把命令产生的日志输出到相应的文件中比如/var/log/mycommand.log中:
nohup /path/to/command >> /var/log/mycommand.log 2>&1 &

或者:

nohup /path/to/command > /var/log/mycommand.log 2>&1 &

在Linux中,>和>>都是重定向符号,用于将命令的输出重定向到文件中。它们的区别如下:
‘>’------覆盖原有文件内容,如果文件不存在则创建文件。例如,将命令的输出重定向到文件中:command > file.txt
‘>>’------追加到原有文件内容的末尾,如果文件不存在则创建文件。例如,将命令的输出追加到文件中:command >> file.txt
因此,如果想要覆盖原有文件内容,使用>;如果想要将输出追加到文件末尾,使用>>。

问题二:手动执行命令 nohup python /data/xxxx/xxxxx/run.py > /data/xxxx/xxxx/nohup.out 2>&1 & 启动成功,但是放在rc.local里面自启就启动不成功,为什么

  1. 请检查你的这个脚本的用户权限,自启和手启是否是同一个用户!!!您需要确保在rc.local中以正确的用户身份运行命令,您可以尝试在rc.local中使用su命令切换到正确的用户,然后再运行Python脚本。例如:
su -c 'nohup python /data/xxt/xxx/run.py > /data/xxx/xxx/nohup.out 2>&1 &' your_username

其中,your_username是您要切换到的用户名。
2. 如果你像我一样用的是python,你需要考虑下你的环境,是不是用conda,如果是node考虑nvm等虚拟环境控制,在这里,你需要指定绝对路径来使你的命令启动,所以这条命令需要修改为:

nohup /root/你的conda环境/bin/python /data/xxxx/xxxxx/run.py > /data/xxxx/xxxx/nohup.out 2>&1 &

完成,收工

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
开机启动是指在系统启动时自动运行特定的脚本或程序。在 Linux 系统中,有多种方法可以实现开机启动,其中包括使用 rc.local 和编写开机启动脚本。 1. rc.local 方法: rc.local 是一个在系统启动阶段自动执行脚本文件,可以用来配置开机启动项。以下是使用 rc.local 实现开机启动的步骤: 1. 打开终端,使用文本编辑器(如 vi 或 nano)以管理员权限编辑 rc.local 文件: ``` sudo nano /etc/rc.local ``` 2. 在文件中添加需要在系统启动执行的命令或脚本,例如: ``` #!/bin/bash # 启动脚本示例 /path/to/your/script.sh ``` 注意:确保添加的命令或脚本执行权限正确设置(如使用 chmod 命令设置为可执行)。 3. 保存并关闭文件。 4. 确保 rc.local 文件具有可执行权限: ``` sudo chmod +x /etc/rc.local ``` 5. 重新启动系统,验证开机启动是否成功。 2. 开机启动脚本方法: 另一种常见的方法是编写一个专门的开机启动脚本,然后将其添加到系统的启动项中。以下是使用开机启动脚本方法的步骤: 1. 创建一个新的启动脚本文件,例如 `myscript.sh`: ``` #!/bin/bash # 启动脚本示例 /path/to/your/script.sh ``` 2. 保存并关闭文件。 3. 将脚本移动到 `/etc/init.d/` 目录中: ``` sudo mv myscript.sh /etc/init.d/ ``` 4. 为脚本设置执行权限: ``` sudo chmod +x /etc/init.d/myscript.sh ``` 5. 将脚本添加到系统启动项中: ``` sudo update-rc.d myscript.sh defaults ``` 6. 重新启动系统,验证开机启动是否成功。 请注意,具体步骤可能因不同的 Linux 发行版而有所差异。在某些发行版中,也可能使用 systemd 或其他工具来管理开机启动项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值