【问题标题】:running a script at linux startup在 linux 启动时运行脚本
【发布时间】:2012-03-23 20:52:55
【问题描述】:

我想在 linux 启动时自动运行一个简单的 shell 脚本

我正在开发运行 qtopia 和 linux 2.6.28 的基于 arm 的板

所以,我将我的脚本放在 /etc/int.d/scriptname 并使用以下命令使其可执行:

chmod +x /etc/init.d/scriptname 

然后我通过以下方式链接它:

ln -s /etc/init.d/scriptname /etc/rc.d/S10scriptname



问题是每当我重新启动或关闭电路板然后再次打开以测试脚本是否正在运行时,我发现脚本已被删除!

我还尝试修改位于 /etc/int.d/ 的 rcS 脚本并添加几行来测试它,但我所做的每一个修改都在我重新启动板后完全删除,我只找到原始文件。

我还是 linux 新手,我试图搜索,但我什么也没找到

谢谢

【问题讨论】:

  • 你使用什么发行版?例如,在许多发行版中,您必须将符号链接放入 /etc/rc2.d(或 rc3.d,具体取决于目标运行级别)。如果文件被删除,这听起来像是一个安全问题——你的发行版是否禁止修改系统文件?
  • 我将 qtopia 与 linux 2.6.28 用于嵌入式系统而不是桌面发行版,我也没有 /etc/rc2.d .. 我只有 /etc/rc.d 和当我在终端上运行“运行级别”时,我得到了未知

标签: linux shell embedded startup embedded-linux


【解决方案1】:

我认为您是从只读文件系统或 initrd 或 initramfs 运行的。如果是这种情况,您需要了解如何重建该文件系统。

如何做到这一点因嵌入式系统或发行版而异。

这可能是电子或嵌入式 StackExchange 的问题。

【讨论】:

  • 哦,我正在使用 cramfs,但我直到现在才知道它是只读的 .. 我对嵌入式 linux 和文件系统还是很陌生 .. 非常喜欢 :)
  • 是的,cramfs 是一个只读的压缩文件系统,必须提前构建。嵌入式是一个非常不同的环境,所有其他答案在某种意义上都是正确的,但假设是错误的。
【解决方案2】:

根据您的发行版,您可以使用“service”或“chkconfig”等命令来帮助您在正确的级别上创建链接。

【讨论】:

  • 好吧,我在嵌入式系统上使用 linux 2.6.28,我认为它没有特定的发行版名称:S,或者至少我无法弄清楚
【解决方案3】:
ln -s /etc/init.d/scriptname /etc/rc.d/S10scriptname 

是错误的需要创建一个链接文件到

ln -s /etc/init.d/scriptname /etc/rc.d/rc *.d/S10scriptname

使用 3 或 5 在脚本末尾请添加 并添加

rm -rf /etc/init.d/scriptname.

【讨论】:

  • 尝试格式化您的代码,但可能弄错了 - 请编辑和改进 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多