我找不到在 systemd 中执行某些本地脚本(或非常本地的命令)的正确方法,我已经知道我不能为此类脚本创建服务(在 systemd 中的一个单元中)(或者我必须?)...
我发现的解决方法是创建 rc.local 并赋予它执行权限。
printf '#!/bin/bash \n\nexit 0' >/etc/rc.local
chmod +x /etc/rc.local
Run Code Online (Sandbox Code Playgroud)
例如,如果我得到一个由你配置的简单 rc.local 的旧服务器,我会知道你做了什么以及在发行版上升级或安装新东西会有多大伤害,因为 rc.local 受到外部尊重包,但另一方面,如果我安装一个服务器并创建一个或两个或三个 systemd 单元(甚至 sysvinit 服务),只是为了完成一个简单的任务,这有时会使您的生活变得更艰难,而我的单元远不止于此名称可能有一天会与发行版开发创建的新服务的名称发生冲突,并且可能在升级时安装,从而导致我的脚本出现问题!
我看到另外一个问题问哪里是rc.local中,答案是创造它,并给执行权限,我想我的问题是真的不是一个重复的,因为我不想知道它在哪里-相信我,我只是想要接受它过时,但我不能找到做这种事情的正确方法,我应该真正创造一个单元,只是这样一些简单的?
我在带有 Raspbian 的 RaspberryPi 上有一个 python 脚本myscript.py
,它通过文件启动rc.local
。由于它有无限循环,我需要在后台运行它。到目前为止一切顺利,但我也想用管道将该脚本的标准输出记录到文件中,但无法使其工作。我的rc.local
文件如下所示:
/usr/bin/python3 /home/pi/myscript.py >> /var/www/html/log.log &
Run Code Online (Sandbox Code Playgroud)
我的log.log
文件有 666 权限,所以我的脚本应该能够写入它,对吗?但事实并非如此。