Starten einer beliebigen Anwendung als Daemon / Dienst

Dieses Thema im Forum "Anwendungen" wurde erstellt von triton_dideldi, 12.08.2003.

  1. #1 triton_dideldi, 12.08.2003
    triton_dideldi

    triton_dideldi Grünschnabel

    Dabei seit:
    01.07.2003
    Beiträge:
    4
    Zustimmungen:
    0
    Hi Forum,

    ich bin gerade an der Portierung einer .Net Applikation nach GNU/Linux und Mono. Dabei muß ich einen Windows Dienst portieren, jedoch sind die entsprechenden Namespaces in Mono noch nicht implementiert.
    Dienste unter Windows sind dabei nichts anderes als Dämonen unter GNU/Linux. Sie sind mit bestimmten Rechten ausgestattet und werden beim Systemstart geladen und benötigen deshalb keinen angemeldeten Benutzer.

    Jetzt meine Frage:

    Kann ein beliebiges, von mir entwickeltes Konsolenprogramm wie unten angedeutet als Dienst über ein Start/Stop Skript gestartet werden, oder benötige ich dazu spezielle Basisklassen, usw.

    Wenn ja, gibts irgendwo eine FAQ zur erstellen von Startskripten, bin nämlich eine Neuling auf dem Linux Sektor und hab deshalb nicht die Hammererfahrung in der GNU/Linux Systemadministration.

    //--------------------------

    using System;
    ..
    ..
    public void Main(string[] args)
    {
    ...
    ...
    ...
    }

    //---------------------------

    besten Dank
    MfG triton_dideldi
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. chb

    chb Steirer

    Dabei seit:
    01.06.2003
    Beiträge:
    2.359
    Zustimmungen:
    0
    Ort:
    ÖSTERREICH
    Man kann natürlich das in der Sprache in der es geschrieben wurde in den Griff zu bekommen aber es ginge natürlich auch über ein Startscript welches das Programm in den Hintergrund schickt :


    Code:
    #/bin/bash
    case "$1" in
       'start')
          /usr/bin/irgendeinprogramm & ;;
       'stop')
          /bin/killall irgendeinprogramm & ;;
       *)
          echo "usage $0 start|stop" ;;
    esac
    

    das wäre die Minimalvariante um soetwas in bash zu bewerkstelligen ..
    Generell startet man ein Programm in den Hintergrund mit

    Code:
    Programm &
    
     
  4. devilz

    devilz Pro*phet
    Administrator

    Dabei seit:
    01.05.2002
    Beiträge:
    12.244
    Zustimmungen:
    0
    Ort:
    Hessen
    @triton_dideldi

    Doppelpostings sind nicht gestattet !
    Ich habe dein 2t Posting mal gelöscht !
     
  5. rup

    rup Haudegen

    Dabei seit:
    10.04.2002
    Beiträge:
    627
    Zustimmungen:
    0
    nohup Programm &

    so brauchst du nicht mal die Konsole, stdout und stderr gehen nach nohup.out
     
  6. rup

    rup Haudegen

    Dabei seit:
    10.04.2002
    Beiträge:
    627
    Zustimmungen:
    0
    Schau dir einfach mal die Skripte in /etc/init.d/ an.
     
  7. #6 triton_dideldi, 13.08.2003
    Zuletzt bearbeitet: 13.08.2003
    triton_dideldi

    triton_dideldi Grünschnabel

    Dabei seit:
    01.07.2003
    Beiträge:
    4
    Zustimmungen:
    0
    Hi,
    danke für die Tipps, das funktioniert soweit einwandfrei. Allerdings habe ich jetzt ein weiteres Problem.

    Ich habe jetzt folgendes Skript geschrieben:

    1#/bin/bash
    2
    3 case "$1" in
    4 'start')
    5 /usr/bin/mono MonoServiceTest.exe &
    6 ;;
    7 'stop')
    8 /usr/bin/killall /usr/bin/mono &
    9 ;;
    10 *)
    11 echo "usage $0 start|stop"
    12 ;;
    13 esac

    Mal angenommen ich starte jetzt einen Dienst über dieses Skript und zusätzlich noch eine andere Mono Anwendung. Wenn ich jetzt den Dienst über das Skript beende, werden alle Programme, die unter Mono laufen beendet und das ist nicht so gut.

    Wenn ich unter 'stop') "/usr/bin/killall /usr/bin/mono MonoServiceTest.exe & eintrag, dann bekomme ich die Fehlermeldung "MonoServiceTest.exe: no process killed"

    Wie kann ich denn nur den Dienst, den ich per Skript gestartet habe auch wieder beenden.
    Ich hätte mir gedacht, dass ich in einer Datei die ich nach /tmp oder so lege, beim Start die PID schreibe und beim Beenden diese wieder auslese und speziell diese PID dann beende.
    Ist das sinnvoll, oder gibt es bessere Möglichkeiten.

    MfG triton_dideldi

    PS: Doppelposting kommt nicht mehr vor. Sorry.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: Starten einer beliebigen Anwendung als Daemon / Dienst
Besucher kamen mit folgenden Suchen
  1. linux programm als daemon starten

    ,
  2. linux programm als daemon

    ,
  3. wie starte ich eine anwendung in linux

    ,
  4. Programm unter Linux als Daemon ausführen,
  5. linux eine anwendung starten
Die Seite wird geladen...

Starten einer beliebigen Anwendung als Daemon / Dienst - Ähnliche Themen

  1. Raspbian: Starten einer Java-GUI Anwendung beim Systemstart (JBidWatcher)

    Raspbian: Starten einer Java-GUI Anwendung beim Systemstart (JBidWatcher): Moin Moin, ich möchte das Programm "JBidWatcher" auf meinem Raspberry mit Raspbian nach dem start der GUI ausführen. Dafür habe ich bereits...
  2. Inhalt einer Variable als Programmaufruf starten

    Inhalt einer Variable als Programmaufruf starten: Also, ich möchte gerne ein Shell-Script schreiben, das je nach Usereingabe ein Anderes Shell-Script (bzw. Programm) aufruft und dann den...
  3. Fehler beim Starten einer neuen Sitzung

    Fehler beim Starten einer neuen Sitzung: Irgendwie stürzt bei mir KDE (oder X11?) ab, wenn ich eine neue Session starten will. Der Bildschirm bleibt einfach nur schwarz und nix tut sich...
  4. Computer starten zu einer bestimmten Uhrzeit mit Awardbios

    Computer starten zu einer bestimmten Uhrzeit mit Awardbios: Ok folgendes Problem: Ich habe einen Server der sich Abends automatisch abschalten soll und am nächsten Tag zu einer Bestimmten Uhrzeit wieder...
  5. DragonBox Pyra: Vorbestellungen starten

    DragonBox Pyra: Vorbestellungen starten: Der Nachfolger der OpenPandora, DragonBox Pyra, kann ab sofort vorbestellt werden. Die Konsole ist in verschiedenen Varianten verfügbar und...