This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/processor-SDK-AM335X:初始化脚本在/etc/init.d 中不起作用

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/594164/linux-processor-sdk-am335x-init-script-not-working-in-etc-init-d

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

您好!

我正在开发最新的 ti sdk ti-processor-sdk-linux-am335x-evm-03.02.00.05-linux-x86-Install。 我正在使用文件系统"Arago-base-tisdk-image-am335x-evm"。 我想将 init 脚本放在/etc/init.d 中、并参考以下 ti 文档。

VI /etc/init.d/helloworld.sh

#!/bin/sh

case $1 in

开始)
回波""
回显"Sitara 的您好!!!"
回波""
 ;
停止)
回波""
回声"再见 Sitara :("
回波""
 ;
*)
回显"$0:传递未知选项"
 ;

esac

我没有收到任何类似"来自 Sitara 的您好!!!"的日志 "和"再见 Sitara :"。

下面是日志的屏幕截图。

尽管服务正在开始和停止 helloworld 脚本、但脚本中的日志不会出现。

谢谢、此致、

Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    处理器 SDK 已从 SystemV 模块迁移到 systemd。 请探索从 systemd 运行脚本的选项。 不再执行基于 RCS 的初始化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dwarakesh、

    感谢您提供信息。
    您是否有要参考的文档? 我再次检查并发现所有默认的 init 脚本都位于 init.d 和 systemd 中、包含配置文件。

    谢谢、此致、
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Deshvir、

    请参阅另一个 e2e 帖子、其中包含与您的问题类似的问题以及执行该操作的步骤: e2e.ti.com/.../539060
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Dwarakesh、

    我尝试的步骤与您提供的链接中所述的步骤完全相同、但仍然没有在控制台上获得任何日志。

    这就是我尝试的

     VI /lib/systemd/system/myinit.service

    [单位]
    Description=我的 init 脚本

    [服务]
    ExecStart=/etc/init.d/myinitscript.sh
    StandardOutput=journal+console

    [安装]
    WantedBy=多用户目标

    VI /etc/init.d/myinitscript.sh

    !/bin/sh
    回波""
    回显"Sitara 的您好!!!"
    回波""

    您能不能建议问题出在哪呢?

    谢谢、此致

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是否可以尝试将 systemd 服务重命名为 myinitscript.service?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我尝试重命名。 这也不起作用。

    谢谢、
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在这种情况下、我建议您执行几个操作来确认脚本是否正在运行。
    1.能否从脚本在已知位置创建文件
    2.能否创建对守护程序的依赖关系并在稍后运行脚本。

    我想、由于 systemd 并行运行服务、您的脚本可能会提前运行、甚至在终端准备就绪之前。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    1.我通过修改脚本来创建文件,尝试了您的第一个解决方案

    我添加了此行以创建文件 create.txt

    Echo >/home/root/create.txt

    但未创建 create.txt。

    2.我不知道如何实施第二个解决方案。  如何创建对守护程序的依赖?

    谢谢、此致、

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Deshvir、

    建议检查服务的状态
    # systemctl status myinit.service
    还建议您按如下方式手动启动
    # systemctl 启动 myinit.service
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    通过提供的命令、服务开始工作。 但为什么它在启动时不自动工作?

    以下是日志:

    root@AM335x-EVM:/etc/init.d 系统命令状态 myfirstscript.service

    ●myfirstscript.service -我的 init 脚本

    已加载:已加载(/lib/systemd/system/myfirstscript.service;已禁用;供应商预设:已启用)

     活动:非活动(死区)

    root@AM335x-EVM:/etc/init.d systemctl 启动 myfirstscript.service                                       

    root@AM335x-EVM:/etc/init.d #[139.698647] myfirstscript.sh[668]:从 Sitara 开始、您好!!

    root@AM335x-EVM:/etc/init.d 系统命令状态 myfirstscript.service

    root@AM335x-EVM:/etc/init.d

    ●myfirstscript.service -我的 init 脚本

     已加载:已加载(/lib/systemd/system/myfirstscript.service;已禁用;供应商预设:已启用)

     活动:非活动(死区)

    12月14日23:17:25 AM335x-EVM systemd[1]:已启动我的初始化脚本。

    12月14日23:17:25 AM335x-EVM myfirstscript.sh[668]:来自 Sitara 的您好!!

    谢谢、此致、

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Deshvir、

    我不确定、也许您可以尝试不同的 WantedBy=如 default.target
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dwarakesh、

    Wantebdy= default.target 也未提供任何预期输出。

    谢谢、此致、
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、错过了基本步骤

    # systemctl 启用 myinitscript.service 并重新引导。 然后、它应该起作用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Deshvir Malik、

    我也一直面临同样的问题。 我尝试从 rc5和 rs 运行 init 脚本、但没有成功。 如果您已经修复了该解决方案、您可以共享该解决方案吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ravikumar:

    您使用的是哪个版本的软件包? 如果是最新的 SDK、则需要系统、而不是 RCS 脚本。 请检查我的上述回复。