klt De mekkora 😉
MODERÁLVA!

Felhívnám a figyelmedet arra a tényre, hogy legyen szó bármilyen rendszerről vagy bárkiről, ezen az oldalon tisztességgel emlegetjük. Ez rád is vonatkozik.
Htibi

  • klt válaszolt erre.

    mennydorges

    mennydorges dotnet run automatikusan folytonosan futtatni?

    Persze.
    Scriptben írd le a futtatását.

    Valami ilyesmi, nem szó szerint, de majd te leírod rendesen:

    #!/bin/sh
    /bin/dotnet run izébizé és paraméterei
    #vagy mittomén milyen paranccsal indítod amúgy a treminálból.

    Elmented például /opt/xfirestart.sh néven.

    /etc/systemd/system alatt csinálsz egy új fájlt például xfirepfire.service néven:

    [Unit]
    Description=Xfire vagy mi a levegő szerver
    #Requires=
    #Ha valaminek még előtte el kell indulnia teljesen, és az ehhez kell, akkor unkomment, és odaírni a nevét annak
    #After=
    #Csak egyszerűen ez után induljon, ha nincs ilyen, akkor mindegy, mikor indul
    
    [Service]
    Type=simple
    User=xfireuserneve
    #Ezen felhasználó neve alatt fut majd ex xfire pótlék
    ExecStart=/opt/xfirestart.sh
    #vagy amine nevezted a scriptet...
    
    [Install]
    WantedBy=multi-user.target

    Ezután

    systemctl daemon-reload
    systemctl enable xfirepfire

    (vagy aminek neezted a .service-t)
    systemctl start xfirepfire
    (Nyilván, ide is az a név jön, amit te adtál neki)

    Kész.
    Ha jól csináltad, a start után a systemctl status xfirepfire olyasmit (is) kell mutasson, hogy
    Active: active (running)

      klt

      ● xfirepfire.service - Xfire szerver
         Loaded: loaded (/etc/systemd/system/xfirepfire.service; enabled; vendor preset: enabled)
         Active: failed (Result: exit-code) since Mon 2023-05-01 19:28:32 CEST; 22s ago
        Process: 30598 ExecStart=/opt/xfirestart.sh (code=exited, status=203/EXEC)
       Main PID: 30598 (code=exited, status=203/EXEC)
      
      máj 01 19:28:32 panel systemd[1]: Started Xfire szerver.
      máj 01 19:28:32 panel systemd[30598]: xfirepfire.service: Failed to execute command: Text file busy
      máj 01 19:28:32 panel systemd[30598]: xfirepfire.service: Failed at step EXEC spawning /opt/xfirestart.sh: Text file busy
      máj 01 19:28:32 panel systemd[1]: xfirepfire.service: Main process exited, code=exited, status=203/EXEC
      máj 01 19:28:32 panel systemd[1]: xfirepfire.service: Failed with result 'exit-code'.

      sh file:

      #!/usr/env/bin bash
      /opt/PFire/src/PFire.Console/dotnet run

      service:

      [Unit]
      Description=Xfire szerver
      
      [Service]
      Type=simple
      ExecStart=/opt/./xfirestart.sh
      
      [Install]
      WantedBy=multi-user.target
      • klt válaszolt erre.

        klt
        xfirepfire.service: Failed at step EXEC spawning /opt/xfirestart.sh: No such file or directory

        Azért sem akarja...

        • klt válaszolt erre.

          klt
          /opt/xfirestart.sh

          #!/bin/sh
          /opt/PFire/src/PFire.Console/dotnet run

          Nagyon nem csináltam még netframeworkos progit...

          • klt válaszolt erre.

            mennydorges

            mennydorges Próbálom működésre bírni.

            Mutattam linket, ami elmegyarázza, mi az a #! kezdetű izé a szkript elején. Azt nem nézted meg?

            It's called a shebang, and tells the parent shell which interpreter should be used to execute the script.

            mennydorges Nagyon nem csináltam még

            Én se. De ha terminálból elindul, akkor így is el kéne neki.

              klt Vágesz volt annó valami hasonló ondom service-ben és valami tök egyszerű kis pici hiba volt csak nem jut eszembe.

              • klt válaszolt erre.

                mennydorges Na, hát ezt kell végignézni. Terminálból elindul a szkripttel? Ha igen, a .service fájlban van a bibi. Ha nem, akkor meg amott.
                Nálam előfordul, hogy elgépelem valaminek a nevét, kihagyok betűt, vagy felcserélek véletlenül két betűt egy névben. Ez utóbbit veszem észre legnehezebben.
                Service fájlban a /./ fölösleges, elég a /
                A shellben viszont tényleg kell a ./, ha az aktuális könyvtárban indítasz valamit, viszont nem kell, ha teljes útvonalát adod meg, például /usr/bin/ping.

                ./xfirestart.sh
                -bash: ./xfirestart.sh: /bin/shM: rossz parancsértelmező: A szövegfájl foglalt

                • klt válaszolt erre.

                  sh xfirestart.sh
                  xfirestart.sh: 2: xfirestart.sh: /opt/PFire/src/PFire.Console/dotnet: not found
                  Valszeg ebben van neki a nem tetszik rész:

                  /opt/PFire/src/PFire.Console/dotnet run

                  Nem értelmezi....

                  • klt válaszolt erre.

                    klt

                    Ennyi a terminálban az indítás:

                    cd /opt/PFire/src/PFire.Console/

                    dotnet run

                    Módosítottam az sh file-t:
                    #!/bin/sh
                    /usr/bin/dotnet /opt/PFire/src/PFire.Console/dotnet run

                    Most erre lázad:

                    sh xfirestart.sh
                    Could not execute because the specified command or file was not found.
                    Possible reasons for this include:

                    • You misspelled a built-in dotnet command.
                      does not exist. to execute a .NET program, but dotnet-/opt/PFire/src/PFire.Console/PFire.Console.csproj
                    • You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
                    • klt válaszolt erre.

                      mennydorges
                      Azt írd a szkriptbe, ahogy terminálból indulna:

                      #!/bin/sh
                      cd /opt/PFire/src/PFire.Console
                      dotnet run