Linux Quickie: Nohup oder wie können Programme im Hintergrund laufen?

Java ua. Programme könen auf Linux bzw. dem Raspberry Pi über die Komandozeile mit dem Programm screen im Hintergrund gestartet werden. Dieses ist aber nicht immer installiert. Deshalb kann man als alternative ein Programm mit nohub als Prozess starten.

Z.B.wird ein Programm in einem Jar wie folgt im Hintergrund gestartet:

java -jar twpdftagger-0.0.2.jar &

Es braucht also nur das & angefügt zu werden. Nun ist man aber oft per ssh eingeloggt und will das das Programm auch nach einem exit der Konsole noch weiterläuft. Hier kommt nun nohup zum Einsatz:

nohup java -jar twpdftagger-0.0.2.jar &

Die Ausgaben des aufgerufenen Programms werden automatisch in die Datei nohup.out geleitet, die im Verzeichnis angelegt wird, von dem aus der Befehl ausgeführt wurde. Weitere Infos zu nohup gibt es mit „Linux Quickie: Nohup oder wie können Programme im Hintergrund laufen?“ weiterlesen

Wie kann mit Arduino die serielle Ausgabe über TCP ausgegeben werden auf dem TP-WR703N Gerät?

Der Arduino (NANO) wird per USB an den TP-WR703N (12.09) angeschlossen. Wie kann nun von einem anderen Rechner darauf per TCP (Telnet) zugegriffen werden?

Dazu erst socat auf den WR703 installieren mit

opkg update
opkg install socat

Socate (Version 1.7.2.1) kann bidirektionale Verbindungen aufbauen. Es verbindet den USB Port mit dem TCP Port.
Dann das folgende Script erstellen start-temp.sh, und evl noch die Schnittstelle DEV und den PORT und BAUD anpassen.

#!/bin/bash

DEV=/dev/ttyUSB0
PORT=1234
BAUD=9600

while true; do
if [ -e $DEV ]
then
socat tcp-l:$PORT,reuseaddr,fork file:$DEV,nonblock,raw,echo=0,waitlock=/var/run/tty,b$BAUD
else
sleep 2
fi
done

und ausführbar machen mit

chmod +x start-temp.sh

Dann kann das Script mit ./start-temp.sh & im Hintergrund auf dem WR703N gestartet werden.

Nun kann von einem anderen Rechner mit
telnet ip-adresse 1234 die Ausgabe ausgegeben werden.

Will man das das Script autom. beim hochfahren des WR703N startet, muss es noch in der /etc.rc.local eingetragen werden (aber vor exit 0). Das geht auch über Luci:

Luci Startskripte
Luci Startskripte

Evl. muss der USB Port einmal reconnected werden.