web-dev-qa-db-ja.com

beagleboneblackでsshなしでコードを実行する

電源を入れるときにsshを実行せずに、Beaglebone blackでコードを実行したい。

~/.bashrcファイルにコードを実行するコマンドをいくつか入れてみましたが、sshを使用してログインした場合にのみ機能します。 /etc/rc.localファイルで同じことを試しましたが、sshを実行しても機能しませんでした。

@reboot my_commandcrontab -eも試しましたが、sshを使用してログインする必要もあります。

助言がありますか??

編集:

root@beaglebone:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.6 (jessie)
Release:    8.6
Codename:   jessie

root@beaglebone:~# ps aux | grep cron | grep -v grep
root       295  0.0  0.3   4428  1988 ?        Ss   15:03   0:00 /usr/sbin/cron -f

crontab -eの出力:最後の数行

root@beaglebone:~# crontab -e
    # For more information see the manual pages of crontab(5) and cron(8)
    #
    # m h  dom mon dow   command


#@reboot /root/wiringBone-master/library/main           not working

#*/5 * * * * /root/wiringBone-master/library/main       works

mainは実行したいスクリプトです

root@beaglebone:~# systemctl enable cronie.service
Failed to execute operation: No such file or directory

mainの許可と所有者

root@beaglebone:~/wiringBone-master/library# ll main 
-rwxr-xr-x 1 root root 66744 May 27 16:15 main
1
Rahul

Crontabがソリューションです。呼び出し元:

crontab -e

これにより、デフォルトのエディターが開きます。追加:

@reboot your command

保存して終了。コマンドにスーパーユーザーのパスワードが必要な場合は、最初にSudo su -、およびcrontab -eをrootとして使用する必要があります。

問題の原因(cronであろうとスクリプトであろうと)にたどり着くために、デバッグの目的でより単純なケースを作成することができます。

  • 最初に、@reboot date >> /root/aなどの行がcrontab -eの後にcronジョブとして追加されます。
  • それが機能する場合(〜ファイル "/ root/a"に日付/時刻を追加)、その行は同じ所有権とアクセス許可(-rwxr-xr-x 1 root root)でbashスクリプトに保存されます。

    #!/usr/bin/sh
    date >> /root/a
    
1
Serhat Cevikel