Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Script starten bij opstart pc CentOS7

Pagina: 1
Acties:

Vraag


  • NiRo
  • Registratie: December 2016
  • Laatst online: 04-09 20:59
Hallo iedereen

Ik wil een Minecraft servertje draaien, maar aangezien mijn eigen laptop niet krachtig genoeg is, en ik nog een oude desktop had staan heb ik daarop CentOS 7 met GNOME geïnstalleerd. Nu wou ik deze server laten starten als het systeem opstart (ook zonder dat iemand aanmeld). Ik heb al geprobeerd om een .desktop bestand in /etc/xdg/autostart te zetten maar hij doet nog steeds niets. Belangrijk punt: aangezien de log ook weergegeven wordt bij een start is het zeer belangrijk dat er ook een terminal open gaat. Dit werkt al als ik het script handmatig uitvoer. Is er een manier om dat script in een terminal te laten uitvoeren, en dit als het systeem opstart?

Alvast bedankt!

Beste antwoord (via NiRo op 08-08-2017 10:41)


  • Ultraman
  • Registratie: Februari 2002
  • Laatst online: 09:10

Ultraman

Moderator Harde Waren

Boefje

Beknopt idee:
Script laten starten tijdens het booten, in dat script een screen of tmux sessie starten, daarin de minecraft server starten.

Screen en tmux zijn zogenaamde terminal multiplexers. Dit zijn sessies waaraan je vanaf een terminal kunt attachen, en ook weer kunt loslaten (detach). De shell er in en eventuele kinderen (zoals een minecraft server) blijven dan doordraaien.
Er zijn vast korte scripts te vinden die dit voor je kunnen regelen en van deze techniek gebruik maken.

Het log zou je natuurlijk ook naar een file weg kunnen schrijven als het je alleen daar om te doen is. Dat kun je regelen door de schermuitvoer van de minecraft server naar een file te sturen middels redirection. Dat ziet er dan zo uit:
$ minecraft-server > minecraft-server.log 2>&1

Die laatste 2>&1 zorgt er voor dat ook foutmeldingen in het log terecht komen. Unix/Linux kent meerdere outputkanalen om het zo uit te drukken. 1 is de standaard uitvoer (stdout), die gaat normaal naar je terminal, maar die richten we naar de log file met het groter-dan teken. Er is ook de standaard foutuitvoer (stderr), dat is de 2, die binden we met dat achtervoegsel ook aan uitvoer 1, welke op dat moment naar die logfile is gericht.

Als je stil blijft staan, komt de hoek wel naar jou toe.

Alle reacties


Acties:
  • Beste antwoord

  • Ultraman
  • Registratie: Februari 2002
  • Laatst online: 09:10

Ultraman

Moderator Harde Waren

Boefje

Beknopt idee:
Script laten starten tijdens het booten, in dat script een screen of tmux sessie starten, daarin de minecraft server starten.

Screen en tmux zijn zogenaamde terminal multiplexers. Dit zijn sessies waaraan je vanaf een terminal kunt attachen, en ook weer kunt loslaten (detach). De shell er in en eventuele kinderen (zoals een minecraft server) blijven dan doordraaien.
Er zijn vast korte scripts te vinden die dit voor je kunnen regelen en van deze techniek gebruik maken.

Het log zou je natuurlijk ook naar een file weg kunnen schrijven als het je alleen daar om te doen is. Dat kun je regelen door de schermuitvoer van de minecraft server naar een file te sturen middels redirection. Dat ziet er dan zo uit:
$ minecraft-server > minecraft-server.log 2>&1

Die laatste 2>&1 zorgt er voor dat ook foutmeldingen in het log terecht komen. Unix/Linux kent meerdere outputkanalen om het zo uit te drukken. 1 is de standaard uitvoer (stdout), die gaat normaal naar je terminal, maar die richten we naar de log file met het groter-dan teken. Er is ook de standaard foutuitvoer (stderr), dat is de 2, die binden we met dat achtervoegsel ook aan uitvoer 1, welke op dat moment naar die logfile is gericht.

Als je stil blijft staan, komt de hoek wel naar jou toe.


  • Tk55
  • Registratie: April 2009
  • Niet online
@Ultraman Waarom geen service aanmaken? Dan wordt ie in ieder geval herstart wanneer er iets mis gaat.

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Installeer een Minecraft server manager. Die start de server(s) automatisch, en geeft je toegang tot de logs. Bijvoorbeeld MSM. http://msmhq.com kost niks, doet precies wat je nodig hebt.

  • NiRo
  • Registratie: December 2016
  • Laatst online: 04-09 20:59
@Ultraman Goed idee maar ik heb niet alleen de logs nodig, maar ik moet ook commando's uitvoeren via die terminal. Ik had al van screen gehoord maar ik dacht dat het net wat overzichtelijker was om meerdere terminals tegelijk te laten draaien maar als dat niet lukt, moet het inderdaad via screen.

@Tk55 Had ik ook al aan gedacht, ga ik direct eens proberen!

@johnkeates Goed idee, had ik nog nooit van gehoord. Bijkomend vraagje: is CentOS nu gebaseerd op Debian of RedHat?

Iedereen al bedankt voor de snelle antwoorden!

UPDATE: ik heb snel even gegoogled hoe ik een service aanmaak maar ik kom er niet echt uit... Dus, hoe maak ik een service van die scripts (zijn er 3).

[ Voor 12% gewijzigd door NiRo op 29-07-2017 17:26 ]


  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
NiRo schreef op zaterdag 29 juli 2017 @ 17:22:
@Ultraman Goed idee maar ik heb niet alleen de logs nodig, maar ik moet ook commando's uitvoeren via die terminal. Ik had al van screen gehoord maar ik dacht dat het net wat overzichtelijker was om meerdere terminals tegelijk te laten draaien maar als dat niet lukt, moet het inderdaad via screen.

@Tk55 Had ik ook al aan gedacht, ga ik direct eens proberen!

@johnkeates Goed idee, had ik nog nooit van gehoord. Bijkomend vraagje: is CentOS nu gebaseerd op Debian of RedHat?

Iedereen al bedankt voor de snelle antwoorden!
CentOS = RPM-stijl, RedHat-based. Eigenlijk is CentOS een 'gratis' RedHat.

  • NiRo
  • Registratie: December 2016
  • Laatst online: 04-09 20:59
@johnkeates Bedankt! Ga gelijk eens proberen! Suggesties zijn nog altijd welkom.

UPDATE: MSM ondersteunt alleen CraftBukkit en Vanilla, terwijl ik een Spigot server run. Is er toch een mogelijkheid om Spigot te laten draaien via MSM?

[ Voor 48% gewijzigd door NiRo op 30-07-2017 10:39 ]


  • NiRo
  • Registratie: December 2016
  • Laatst online: 04-09 20:59
CONCLUSIE: Ik ga werken met screen. Nu komt de eigenlijke vraag terug. Ik heb een scriptje gemaakt voor alle screen sessies. Nu wil ik dit uitvoeren als de server opstart. Via Google zegt de ene dat ik het met /etc/init.d moet doen en de andere zegt dat ik best een Desktop Entry file aanmaak. Welke is volgens jullie het best? Bedankt iedereen voor alle antwoorden al!
Pagina: 1