2017-12-15 3 views
0

Ich habe ein Problem.Ich habe ein Programm in C für Armbian geschrieben.Wie stoppe ich ein laufendes Programm in C?

Ich verwende RTKLIB Software für GPS-Datenkonvertierung von ubx zu RTCM3.

Ich bekomme einige Daten von der seriellen Schnittstelle und starten str2str (rtklib Software).

Es schafft dieser Befehl

str2str -in tcpsvr://:2101#ubx -out serial://ttyS2:115200#rtcm3 

und rufen Systemfunktion auszuführen, um diesen Befehl auszuführen. Es ist erfolgreich, aber wenn ich einen neuen Befehl sende, möchte ich, dass es die str2str-Software stoppt.

Ich habe versucht, die exit(0) und es stoppt meine Software. Ich möchte meine Software nicht stoppen. Ich möchte str2str stoppen und einen neuen Befehl erstellen und erneut ausführen.

Wie kann ich es tun? Ich bin nicht gut mit der Linux-Umgebung.

Dank

+3

Bitte bearbeiten Sie Ihre Frage zu etwas lesbarem – aaa

+1

Schreckliche Frage, schwer zu beantworten. –

+1

Welche Funktion haben Sie verwendet, um str2srt auszuführen? Wenn du seine PID bekommst, kannst du sie töten. – Mostafa

Antwort

0

Ich schlage vor, Sie herausfinden, wie für den str2str Prozess, den Sie zu töten, wollen zu suchen und die PID erhalten. Eine Stackoverflow-Suche zeigt dies an und verwendet dann die PID, um den Prozess zu beenden. Es sei denn, RTKLIB hat einen Prozess, um dies direkt zu tun.

+0

kann ich "-pkill str2str" anstelle von PID verwenden. In C muss ich die PID-Nummer finden und dann schließen. aber das kann einfacher und schneller sein, wenn es funktioniert. –

+0

Das klingt vernünftig. – Alex

+0

danke für deine Hilfe. Es hat sehr gut funktioniert. –

Verwandte Themen