電源を入れるときにssh
を実行せずに、Beaglebone black
でコードを実行したい。
~/.bashrc
ファイルにコードを実行するコマンドをいくつか入れてみましたが、ssh
を使用してログインした場合にのみ機能します。 /etc/rc.local
ファイルで同じことを試しましたが、sshを実行しても機能しませんでした。
@reboot my_command
でcrontab -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
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