
Ich möchte einen Code ausführen, Beaglebone black
ohne dass ssh
dies beim Einschalten geschieht.
Ich habe versucht, einige Befehle einzugeben, um den Code in der Datei auszuführen, ~/.bashrc
aber es funktioniert nur, wenn ich mich mit anmelde ssh
. Ich habe dasselbe mit /etc/rc.local
einer Datei versucht, aber es hat auch nach SSH nicht funktioniert.
Ich habe @reboot my_command
es auch versucht crontab -e
, aber ich muss mich auch per SSH anmelden.
Irgendwelche Vorschläge??
BEARBEITEN:
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
Ausgabe von crontab -e
: letzten paar Zeilen
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
ist das Skript, das ich ausführen möchte
root@beaglebone:~# systemctl enable cronie.service
Failed to execute operation: No such file or directory
Erlaubnis und Eigentümer vonmain
root@beaglebone:~/wiringBone-master/library# ll main
-rwxr-xr-x 1 root root 66744 May 27 16:15 main
Antwort1
Die Lösung ist Crontab. Aufruf durch:
crontab -e
Dadurch wird der Standardeditor geöffnet. Fügen Sie hinzu:
@reboot your command
Speichern und beenden. Wenn der Befehl ein Superuser-Passwort erfordert, sollten Sie dies zuerst tun sudo su -
und crontab -e
als Root anmelden.
Um zur eigentlichen Ursache des Problems zu gelangen (ob es nun Cron oder das Skript ist), kann zu Debugging-Zwecken ein einfacherer Fall erstellt werden:
- Zuerst wird eine Zeile wie
@reboot date >> /root/a
oder ähnlich als Cron-Job nachcrontab -e
Wenn es funktioniert ( ~ hängt Datum/Uhrzeit an die Datei „/root/a“ an), wird diese Zeile in einem Bash-Skript mit denselben Eigentümern und Berechtigungen (
-rwxr-xr-x 1 root root
) gespeichert, etwa so:#!/usr/bin/sh date >> /root/a