mennydorges Tanulság: a 127.0.0.1 az a localhost, nem egy másik gép
Xfire szerver készítése
- Szerkesztve
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
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)
mennydorges winfos host file....
Az is csak egy beállító fájl, amibe ha butaságot írnak, nem vezet jó működésre
- Szerkesztve
● 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
mennydorges Elfelejtettem említeni, hogy tedd futtathatóvá a .sh fájlt.
chmod +x /opt/xfirestart.sh
Ez lehet probléma.
Illetve hiányolom az elejéről a#!/bin/sh
jelzést.
https://stackoverflow.com/questions/7366775/what-does-the-line-bin-sh-mean-in-a-unix-shell-script
klt
xfirepfire.service: Failed at step EXEC spawning /opt/xfirestart.sh: No such file or directory
Azért sem akarja...
- Szerkesztve
klt
/opt/xfirestart.sh
#!/bin/sh
/opt/PFire/src/PFire.Console/dotnet run
mennydorges #!/usr/env/bin bash
Ennek mi az értelme?
klt Próbálom működésre bírni.
Nagyon nem csináltam még netframeworkos progit...
- Szerkesztve
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.
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
mennydorges Akkor itt az ideje, hogy a shebang-ot kijavítsd!
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....
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.