使用BeagleBone Black在启动时执行脚本

Sag*_* Sm 7 debian startup beagleboneblack

我有一个a.out,我想我的时候运行BeagleBone开机.它实际上是一个套接字服务器,我想在BeagleBone启动时立即启动它.我试着把它放进去/etc/init.d,但它没有帮助.我写了一个shell脚本来运行这个可执行文件,但即使这样也无济于事.

如何在脚本启动后立即运行脚本,我该怎么办?

小智 11

我花了很长时间才弄明白这一点,但经过大量的研究,我终于找到了我想要的东西.

  1. 编译所需的代码.

  2. 创建一个bash脚本,该脚本将在启动/启动时启动代码

    cd /usr/bin/
    
    Run Code Online (Sandbox Code Playgroud)

    类型 nano scriptname.sh

    #!/bin/bash
    /home/root/name_of_compiled_code
    
    Run Code Online (Sandbox Code Playgroud)

    保存并授予执行权限

    chmod u+x /usr/bin/scriptname.sh
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建服务

    nano /lib/systemd/scriptname.service
    
    Run Code Online (Sandbox Code Playgroud)
  4. 根据需要编辑上述文件以调用网络等不同功能.仅在代码需要该特定服务时才启用它们.禁用不需要的以减少启动时间.

    [Unit]
    Description=description of code
    After=syslog.target network.target
    [Service]
    Type=simple
    ExecStart=/usr/bin/scriptname.sh
    [Install]
    WantedBy=multi-user.target
    
    Run Code Online (Sandbox Code Playgroud)
  5. 创建一个符号链接,让设备知道服务的位置.

    cd /etc/systemd/system/
    ln /lib/systemd/scriptname.service scriptname.service
    
    Run Code Online (Sandbox Code Playgroud)
  6. 使systemd重新加载配置文件,立即启动服务(有助于查看服务是否正常运行)并启用命令行中指定的单元文件.

    systemctl daemon-reload
    systemctl start scriptname.service
    systemctl enable scriptname.service
    
    Run Code Online (Sandbox Code Playgroud)
  7. 立即重启BBB以查看它是否按预期运行.

    reboot
    
    Run Code Online (Sandbox Code Playgroud)

(所有功劳都归功于http://mybeagleboneblackfindings.blogspot.com/2013/10/running-script-on-beaglebone-black-boot.html)