我找不到在 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中,答案是创造它,并给执行权限,我想我的问题是真的不是一个重复的,因为我不想知道它在哪里-相信我,我只是想要接受它过时,但我不能找到做这种事情的正确方法,我应该真正创造一个单元,只是这样一些简单的?
我想永久添加iptables规则到我的新VPS,并简要谷歌搜索后,我感到惊讶的是有两个地方可以添加这一规则,这似乎是相同的:/etc/rc.local和/etc/init.d/rc.local。也许有人知道为什么简单的启动代码放两个地方?它是特定于 linux 的风格吗(但 ubuntu 两者都有!)?或者其中之一已被弃用?
我有一个 Ubuntu 14.04 服务器,在启动期间,它应该在任何普通用户可以登录(通过 ssh)之前通过网络同步一些东西。
我想知道从/etc/rc.local哪里调用脚本是否正确?
看看这个脚本的评论:
该脚本在每个多用户运行级别结束时执行。
看起来它是在系统准备好接受用户登录后调用的。
这就是我对“在每个多用户运行级别结束时”的理解。
我在这里看到了答案: 的目的和典型用法/etc/rc.local,我仍然觉得它有点模棱两可。
多一点上下文是适当的:这是一个自动化的过程,其中用户实际上是许多机器轮询服务器以登录......
我知道 rc*.d 目录在启动时使用,或重新启动,等等,用于启动或停止程序。任何人都可以向我解释放置在/etc/路径下的 rc*.d 文件夹和放置在/etc/rc.d/路径下的另一个文件夹之间有什么区别。
此外,有什么之间的区别/etc/init.d和/etc/rc.d/init.d?
谢谢。
注意我正在运行 CentOS 6.2。
init-script directory-structure architecture sysvinit init.d
关于rc为 Debian编写 van Smoorenburg脚本的长期建议,来自许多来源,包括Debian 政策手册和 StackExchange 上的答案,直到现在:
可以
/etc/init.d在/etc/init.d/skeleton.
现在还是这样吗?
debian ×2
sysvinit ×2
architecture ×1
boot ×1
init-script ×1
init.d ×1
rc.local ×1
startup ×1
systemd ×1
ubuntu ×1