Mehr als 6 Instanzen/Services auf einem VServer starten

  • Guten Morgen,


    ich möchte auf meinem VServer mehrere Instanzen unterschiedlicher Services starten.

    Aktuelle gehe ich wie folgt vor:

    1. Einloggen in der SCP-Oberfläche

    2. Öffnen des Menüpunkts "Bildschirm" -> Linux-Console öffnet sich

    3. Nun starte ich in der ersten Console den ersten Service (Java-Programm)

    4. Mittels "STRG" + "ALT" + "F1-F6" kann ich zwischen den Consolen wechseln und bis zu 6 verschiedene Services starten


    Wie kann ich aber nun mehr als 6 Services starten bzw. laufen lassen?


    MfG

    Lutz

  • Wenn für die "Services" keine Konsole interaktiv genutzt wird, wäre es doch einfacher die Services im Hintergrund laufen zu lassen (also einfach ein & anhängen) oder? Dann reicht auch eine einzige Konsole.

  • Bin mir nicht sicher, ob hier wirklich "Services" gemeint sind, i.d.R. bringen diese bei der Installation ja auch passende systemd-Konfigurationen mit und richten diese ein.
    Ein paar Infos zu den gewünschten Programmen/Services könnte das aufhellen.

  • Hallo,


    vielen Dank für Eure Hinweise. Ich lese mich gerade in das ganze Thema ein.

    In der Konfiguration und im Betrieb von Servern bin ich leider noch ziemlich am Anfang.


    Vielleicht verwende ich den Begriff Service hier auch falsch. Was meine ich damit:


    Im Grunde möchte ich n-mal ein Jar starten.


    Also n-mal folgenden Begriff starten:

    java -jar test.jar


    Diese sollen im Hintergrund gestartet werden. Ich benötige eine Übersicht aller gestarteten Instanzen und müsste diese auch über einen Befehl einzelnen starten bzw. stoppen können.


    Daher kam bei mir der Begriff Service auf.

  • java -jar test.jar &
    lässt die Anwendung im Hintergrund laufen (warum auch immer, das ist mir hier nicht wirklich klar).

    mit z.B.
    ps ax | grep test.jar
    kann man sich die Prozesse anzeigen lassen (und notfalls killen).

    Wenn es darum geht, diese starten/stoppen etc zu können, dann ist die Einrichtung als Service sinnvoll - für jeden gewünschten Aufruf ist dann aber auch eine eigene Service-Konfiguration notwendig (da der gleiche laufende Service ja nicht erneut gestartet werden kann).

  • Wenn es darum geht, diese starten/stoppen etc zu können, dann ist die Einrichtung als Service sinnvoll - für jeden gewünschten Aufruf ist dann aber auch eine eigene Service-Konfiguration notwendig (da der gleiche laufende Service ja nicht erneut gestartet werden kann).

    Klingt ausnahmsweise mal nach einem perfekten Einsatzzweck für Systemd Service Unit Templates. (Die Dinger mit @-Zeichen im Namen.)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • lässt die Anwendung im Hintergrund laufen (warum auch immer, das ist mir hier nicht wirklich klar).

    Der Operator ist eine eingebaute Funktion (builtin) in der Bash Shell.


    Das kommt aus der boolschen Algebra in Programmiersprachen.

    Boolsche Vergleiche (in diesem Fall der AND Operator) kommen im Doppelpack.


    Code
    if (statement A && statement B)

    Die Wahrheitstabelle verrät uns, wenn A false ist, kann der Gesamtterm nie true werden, weswegen egal ist wie B überhaupt aussieht - B muss nicht angefasst werden.

    Das ist auch okay, wenn B ein absoluter Term ist - B kann aber auch komplexer sein - eine Funktion oder ähnliches. Als Programmierer gibt es Situationen, in den ich B auswerten möchte, unabhängig von A - ohne die Reihenfolge zu ändern.

    Ein nützliches Beispiel könnte ein Inkrement sein.

    Code
    if (a < 5 && (++b == 3))

    In diesem Fall wird dann nur ein & geschrieben, damit beide Terme ausgewertet werden und die Optimierung entfernt wird.


    Im Falle der Bash werden Befehle so verkettet - damit die numerischen Exit Codes verknüpft werden können. (0 ist in dem Fall True - alles andere False).

    Ein einfaches Und heißt auch hier: hör nicht auf zu arbeiten, wenn der erste Befehl fehlschlägt.


    Im Sinne einer Optimierung wird also jeder Befehl geforkt und im Hintergrund ausgeführt. Wenn du kein weiteres Statement eingibst, wartet Bash halt auf das Statement - bearbeitet aber schon das vorherige Statement.

  • Hi,


    wenn dich die Frage nach 'wie starte ich services' ins grübeln bringt besteht die Chance das Du dir auf einem eventuell nicht gut gesichtern Server schnell 'Besuch' einfängst.


    Ich habe ähnlich angefangen (wahrscheinlich jeder) - aber lieber zuhause hinter der Fritzbox.

    Renès Ansatz (systemd) erscheint mir hier passender als nohub, &, screen & tmux - die auch gut sind, aber eher für 'mal schnell was starten' - und nicht für 'bei jedem Server start verschiedene Services hochfahren.


    Bei aktuellen distros würdest du systemd nutzen. Wie ja hoffentlich auch für nftables/iptables?


    ```

    cat /etc/systemd/system/myapp.service

    [Unit]

    Description=Application 1 - using jar


    [Service]

    Type=oneshot

    RemainAfterExit=yes

    WorkingDirectory=/..wherever

    ExecStart=java ..

    ExecStop=kill ..

    TimeoutStartSec=0

    ```