当前位置: 首页 > 知识库问答 >
问题:

从 rc.local 运行蟒蛇脚本不执行

丁鸿信
2023-03-14

我想在ubuntu 14.04LTS的引导上运行一个python脚本。

我的rc.local文件如下:

sudo /首页/hduser/morey/动物园管理员-3.3.6/bin/zkServer.sh启动

回声“测试”

sudo/home/HD user/Morey/Kafka/bin/Kafka-server-start . sh/home/HD user/Morey/Kafka/config/server . properties

回声“测试

/usr/bin/python /首页/hduser/morey/kafka/automate.py

回声“测试”

出口 0

除了我的python脚本之外,其他一切都工作正常,甚至是运行python脚本后的echo语句,但是python脚本似乎无法运行。我的python脚本如下

import sys
from subprocess import Popen, PIPE, STDOUT

cmd = ["sudo", "./sbt", "project java-examples", "run"]
proc = Popen(cmd, shell=False, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
proc.communicate(input='1\n')
proc.stdin.close()

如果单独执行,效果非常好。

我经历了以下问题,链接

我做了很多研究,但找不到解决办法。

编辑:echo语句仅用于测试目的,第二个实际命令(不考虑echo声明)是启动一个持续运行的服务器,如果有帮助的话,甚至python脚本也会启动一个在无限循环上运行的侦听器

共有3个答案

燕和裕
2023-03-14

如果您想在系统引导时运行python脚本,有一个替代解决方案我已经使用过了。

1:创建像 sample.sh 一样的sh文件并复制粘贴以下内容

#!/bin/bash
clear


python yourscript.py

2:现在在重新启动时添加一个 cron 作业。如果您使用的是 Linux,则可以使用如下方法

a:Run crontab -e(Install sudo apt-get install cron)
b:@reboot /full path to sh file > /home/path/error.log 2>&1

然后重启你的设备

向修谨
2023-03-14

不要在后台运行Python脚本,而是在前台运行它。不要退出其父脚本。最好从“rc.local”调用另一个脚本,该脚本完成“回显”和脚本启动的所有工作。

从“rc.local”运行该脚本;不在后台(否

您不需要“sudo ”,因为“rc.local”是作为根用户运行的。

谢阳曜
2023-03-14

Python脚本尝试启动< code >。/sbt。您确定< code>rc.local运行时的当前目录吗?规则是在系统脚本中总是使用绝对路径

 类似资料:
  • 我已经在Windows 7上安装了Python 3.3,并创建了一个bat文件来运行下面的Pythone脚本: 当我双击蝙蝠文件时,我得到以下错误: 文件“C:\Python33\lib\编码\cp1252.py”,第 23 行,在解码返回codecs.charmap_decode(输入,自我错误,decoding_table)[0] Unicode解码错误:'charmap' 编解码器无法解码位

  • 问题内容: 我有一个node.js脚本,需要在启动时启动 并 在www-data用户下运行。在开发期间,我始终使用以下命令启动脚本: 我确切地看到了发生了什么,manager.js现在运行良好。搜索所以我发现我不得不把它放在我的。另外,我学会了将输出指向日志文件,并将追加到“将stderr重定向到stdout”,它应该是守护程序,因此最后一个字符是。 最后,我的样子是这样的: 如果我自己运行此代码

  • 我正在运行Ubuntu 18.04。 我使用mysql连接器-python连接Python到MySQL。 我使用的是Python 3.6.7,并且已经安装了mysql连接器-python。 我已经安装了mysql连接器-python-py3_8.0.13-1ubuntu18.10_all.deb. 在运行Python脚本时,mysql。连接器模块似乎加载正确,但脚本在碰到光标时失败。next()具

  • 假设我有一些资源,我想在用python编写的aws lambda中的不同请求之间共享。我应该如何实现这一点? 是否有“启动后”挂钩,或者我应该在第一次调用时惰性地创建资源?“延迟初始化”的缺点是,它意味着一些请求会随机变慢,因为您选择了一个消费者来承担启动成本。 此外…这些资源会在lambda可执行文件被“冻结”后幸存下来吗? 本页https://docs.aws.amazon.com/lambd

  • 嗨,当我在运行apache 2的ubuntu server 14.10上使用mod_wsgi和python访问django时,出现了下面的错误。 我的django应用程序使用python 3.4,但它似乎默认为python 2.7,我无法从PIL导入图像,从pycrypto导入AES。 导入错误在 / 无法导入名称 _imaging 请求方法: GET 请求 URL: Django 版本: 1.7

  • 问题内容: 我试图使该python脚本从/etc/rc.local,crontab @reboot和通过systemctl的systemd运行,但没有成功。 python脚本以pi用户身份登录时从命令行运行,并正常退出后台而没有问题。用pi用户在提示符下运行它的方法与此相同:sh /etc/rc.local 任何指导将不胜感激,如下所示: 位于/etc/rc.local中的代码,然后进行简单的重定