
Я хочу запустить некоторый код, Beaglebone black
не делая никаких действий ssh
при подаче питания.
Я пробовал вставлять некоторые команды для запуска кода в ~/.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
решение1
Решение — Crontab. Вызовите с помощью:
crontab -e
Что откроет редактор по умолчанию. Добавьте:
@reboot your command
Сохраните и выйдите. Если команда требует пароль суперпользователя, вы должны сначала sudo su -
, и crontab -e
как root.
Чтобы добраться до самого источника проблемы (будь то cron или скрипт), можно создать более простой случай для отладки:
@reboot date >> /root/a
Сначала добавляется строка типа или подобная как задание cron послеcrontab -e
Если это сработает (~ добавит дату/время в файл "/root/a"), эта строка сохранится в скрипте bash с теми же владельцами и разрешениями (
-rwxr-xr-x 1 root root
) и будет выглядеть так:#!/usr/bin/sh date >> /root/a