AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [C++] Permanent laufendes Linux-Programm
Thema durchsuchen
Ansicht
Themen-Optionen

[C++] Permanent laufendes Linux-Programm

Ein Thema von cruso · begonnen am 5. Mai 2008 · letzter Beitrag vom 7. Mai 2008
Antwort Antwort
cruso
(Gast)

n/a Beiträge
 
#1

[C++] Permanent laufendes Linux-Programm

  Alt 5. Mai 2008, 23:44
Hi,

ich möchte mit C++ einen kleinen Bot schreiben, der das WWW nach bestimmten Kriterien durchsucht. Wie ich das mache ist mir klar. Nur habe ich noch nie unter Linux programmiert. Da auf dem Server allerdings Linux läuft nun meine eigentliche Frage: Wie muss ich das C++-Programm schreiben, dass ich es während einer SSH-Sitzung starten kann und es nicht beendet wird nachdem ich mich auslogge... es soll permantent weiterlaufen?


MfG
Cruso
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#2

Re: [C++] Permanent laufendes Linux-Programm

  Alt 6. Mai 2008, 00:16
Das ist wohl am einfachsten: http://de.gentoo-wiki.com/Screen_Tutorial
Damit kann man auch "Konsolen" öffnen, in denen du das Programm starten kannst, die auch offen bleiben, wenn man sich schon wieder ausgeloggt hat.

Sonst wären da noch Dämonen, aber das ist eher kompliziert. Ein Dämon ist das was unter Windows ein Dienst ist. Dämonen haben aber keine Shell zur Verfügung.
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#3

Re: [C++] Permanent laufendes Linux-Programm

  Alt 6. Mai 2008, 17:34
Gut, danke! Das hilft mir schon mal weiter. Aber gibt es noch andere Dinge, die beachtet werden sollten? Oder kann ich eine ganz normale C++-Konsolenanwendung schreiben und den Plattformunabhängigen Code dann unter Linux kompilieren?
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#4

Re: [C++] Permanent laufendes Linux-Programm

  Alt 6. Mai 2008, 18:24
Also ich mache das ohne screen ganz einfach mit folgendem Code.

Code:
nohup /usr/bin/meinprogramm >/dev/null
das Programm "nohup" sorgt dafür, dass das Programm auch noch läuft, wenn du dein SSH Fenster schließt. Die Ausgabeweiterleitung ">/dev/null" sorgt dafür, dass deine Ausgaben des Programms nicht in eine Datei gespeichert werden, sondern einfach verworfen werden. Normal speichert "nohup" nämlich die Ausgaben des Programms in eine Datei namens nohup.out. Die wird mit der Zeit dann aber ziemlich groß.

Was du beachten musst kann ich die nicht so genau sagen, in C++ schonmal garnicht, denn ich kann kein C++. Ich habe allerdings auf beiden Betriebssystemen Python programmiert. Mein zugegenermaßen etwas dämlicher Ansatz: Wenn du es von Betriebssystem $x auf $y portieren willst, dann versuch es erstmal ohne Änderung zu kompillieren. Vielleicht geht es ja. (Eher nicht *g*) Ansonsten gibt der Compiler schon entsprechende Meldungen aus. Wenn er etwas sagt wie "Function not found: exitWindowsEx()", dann wird das wohl heissen, dass Linux diese Funktion nicht hat. Dann muss man halt eine andere suchen.

Probier's einfach aus.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#5

Re: [C++] Permanent laufendes Linux-Programm

  Alt 6. Mai 2008, 21:14
Zitat von Valle:
Also ich mache das ohne screen ganz einfach mit folgendem Code.

Code:
nohup /usr/bin/meinprogramm >/dev/null
das Programm "nohup" sorgt dafür, dass das Programm auch noch läuft, wenn du dein SSH Fenster schließt. Die Ausgabeweiterleitung ">/dev/null" sorgt dafür, dass deine Ausgaben des Programms nicht in eine Datei gespeichert werden, sondern einfach verworfen werden. Normal speichert "nohup" nämlich die Ausgaben des Programms in eine Datei namens nohup.out. Die wird mit der Zeit dann aber ziemlich groß.

Was du beachten musst kann ich die nicht so genau sagen, in C++ schonmal garnicht, denn ich kann kein C++. Ich habe allerdings auf beiden Betriebssystemen Python programmiert. Mein zugegenermaßen etwas dämlicher Ansatz: Wenn du es von Betriebssystem $x auf $y portieren willst, dann versuch es erstmal ohne Änderung zu kompillieren. Vielleicht geht es ja. (Eher nicht *g*) Ansonsten gibt der Compiler schon entsprechende Meldungen aus. Wenn er etwas sagt wie "Function not found: exitWindowsEx()", dann wird das wohl heissen, dass Linux diese Funktion nicht hat. Dann muss man halt eine andere suchen.

Probier's einfach aus.

Mit freundlichen Grüßen,

Valle
Naja also eigentlich müsste es klappen, da ich ja nur den Plattformunabhänigen C++-Teil verwende...
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: [C++] Permanent laufendes Linux-Programm

  Alt 7. Mai 2008, 09:36
Zitat von Valle:
das Programm "nohup" sorgt dafür, dass das Programm auch noch läuft, wenn du dein SSH Fenster schließt. Die Ausgabeweiterleitung ">/dev/null" sorgt dafür, dass deine Ausgaben des Programms nicht in eine Datei gespeichert werden, sondern einfach verworfen werden. Normal speichert "nohup" nämlich die Ausgaben des Programms in eine Datei namens nohup.out. Die wird mit der Zeit dann aber ziemlich groß.
Das nohup braucht es nicht unbedingt.
Versuch mal, unter linux ein normales Programm mit dem Parameter "&" zu starten.
Also z.B. "ping www.web.de &".
Dann die ssh-Sitzung schliessen.
Neu per ssh anmelden.
Dann mit "ps -aux" alle laufenden Prozesse anezigen lassen.
Da sollte dann das ping von vorhin dabei sein.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#7

Re: [C++] Permanent laufendes Linux-Programm

  Alt 7. Mai 2008, 14:25
Zitat von RavenIV:
Das nohup braucht es nicht unbedingt.
Versuch mal, unter linux ein normales Programm mit dem Parameter "&" zu starten.
Also z.B. "ping www.web.de &".
Dann die ssh-Sitzung schliessen.
Neu per ssh anmelden.
Dann mit "ps -aux" alle laufenden Prozesse anezigen lassen.
Da sollte dann das ping von vorhin dabei sein.
Grade eben getestet, geht nicht. Das Programm Ping ist weg.
Getestet: Debian 4.0 Kernel 2.6.9-023stab046.2-enterprise mit PuTTY

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz