Jeg har fået installeret Gogs på en Debian 9 Server - det kører meget fint og starter fint op med kommandoen:
/home/git/gogs/./gogs web
Det skal køres som root.
Nu kommer spørgsmålet så - hvordan får jeg det til at starte op hver gang computeren bliver genstartet? Jeg har søgt på nettet, men de guides jeg har fundet har ikke lykkes. Kan forstå der er noget med at når det er systemd så er det lidt anderledes?
20-05-2010
#0: Kan forstå der er noget med at når det er systemd så er det lidt anderledes?
Ja det er korrekt. Jeg kan ikke svare konkret iht Gogs, ikke mindst fordi du har placeret scriptet i Home (Ejerskab og Tilladelser), men systemd fungerer med systemctl kommandoen, fra terminalen, under starten af OS.
Eksempelvis for at teste uden indstillingen gemmes:
systemctl start navn-på-service-serviced.service
Start at boot time (Indstillingen gemmes):
sudo systemctl enable navn-på-service-serviced.service
For at tjekke systemd status:
systemctl --type=service
Der er iøvrigt forskel på om du ønsker start at services under logon eller boot. Hvis Debian 9 har GUI til Opstartsprogrammer, bør det fungere at tilføje scriptet, hvis du ønsker start under logon.
https://wiki.debian.org/systemd
26-03-2008
Jeg kan vel bare flytte Gogs til en anden folder? Det er det eneste maskinen skal stå og lave. Men hvor burde sådan en mappe ligge?
Freelance Webdesigner | Vi ses på SOCii - Det frie danske fællesskab
20-05-2010
#2: Men hvor burde sådan en mappe ligge?
Jeg vil tro at eksempelvis pseud, du allerede har talt med og som har erfaring med Gogs: https://www.linuxin.dk/node/22267#comment-90270 ved det, men du kan forsøge med /opt/ mappen, der har root permissions, og ind imellem bruges til program installationer.
Det er ikke altid at /opt/ eksisterer i forvejen i roden. Hvis det er tilfældet, så prøv selv at oprette den med file mangeren i root tilstand.
26-03-2008
Det er mig en gåde hvorfor jeg bare ikke kan få Gogs til at køre ved opstart. Hvorfor kan det være så svært. Jeg har prøvet at skrive til "pseud" desværre uden held.
Så er der nogen der kan forklarer mig hvordan jeg får et simpelt program til at kører ved opstart må I meget gerne sige til...
Freelance Webdesigner | Vi ses på SOCii - Det frie danske fællesskab
20-05-2010
Hvilke metoder har du allerede forsøgt?
https://linuxconfig.org/how-to-automatically-execu...
https://www.tecmint.com/auto-execute-linux-scripts...
26-03-2008
En af dem er denne: https://gogs.io/docs/intro/faqs#how-do-i-run-gogs-...
How do I run Gogs at startup with Systemd?
There’s a systemd service template file in the Gogs GitHub repository, and in the installed files at ./scripts/systemd/gogs.service. You will likely need to modify it for your installation:
Update User, Group, WorkingDirectory, ExecStart, and Environment with values appropriate to your Gogs installation.
(Optional) If you would like to use Gogs with MySQL/MariaDB, PostgreSQL, Redis, or memcached then uncomment the appropriate After lines.
Save your modified service file at /etc/systemd/system/gogs.service, enable it with sudo systemctl enable gogs, and start it with sudo systemctl start gogs.
You can check the status of the Gogs service with sudo systemctl status gogs -l, or display the journal entries with sudo journalctl -b -u gogs.
Men får denne fejl når jeg kommer til et punkt:
root@GITSERVER:/home/git# systemctl enable gogs
Synchronizing state of gogs.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable gogs
update-rc.d: error: gogs Default-Start contains no runlevels, aborting.
root@GITSERVER:/home/git#
Freelance Webdesigner | Vi ses på SOCii - Det frie danske fællesskab
26-03-2008
Den her virker vist ikke - da local.rc ikke er aktiv mere i Debian 9: https://www.tecmint.com/auto-execute-linux-scripts...
Den anden har jeg rodet lidt med, men synes ikke helt at kunne få den til at virke.
Freelance Webdesigner | Vi ses på SOCii - Det frie danske fællesskab
20-05-2010
Prøv at læse dette: https://www.tecmint.com/create-new-service-units-i...
og dette, hvor gogs befinder sig i home: https://github.com/gogits/gogs/blob/master/scripts...
Hvis ingen kender det eksakte svar, eller du ikke selv finder løsningen, så må du leve med at starte servicen manuelt, formentlig indtil systemd, gogs, eller hvad der skyldes problemet, bliver mere strait on.
26-03-2008
Jeg fik det til at virke!
Det var noget fra /etc/init.d der forstyrrende - efter en remove virker det bare!
Freelance Webdesigner | Vi ses på SOCii - Det frie danske fællesskab
20-05-2010
#9: Det var noget fra /etc/init.d der forstyrrende
Det giver mening. init.d er ikke beregnet til programmer man selv installerer og vil give denne runlevel fejl. Deres opstart skal eventuelt ligge i /etc/systemd/system eller /lib/systemd/system
Glimrende.
12-07-2007
#4:
Du kan bruge @reboot kommandoen i en brugers crontab-fil til at køre et program ved opstart.
Fordelene er at du aå kan lave en unik bruger der kun kører den valgte process og som ikke nødvendigvis har root-adgang hvis det ikke er nødvendig.
Du logger bare ind, eller su'er til den valgte bruger. Derfra skal du så redigere denne brugers crontab-fil med crontab -e
Tilføj så sidst i denne fil på sin egen seperate linje.
@reboot sti/til/eksekverbar/.fil
Og huske at gemme.. eventuelt kan du også bruge screen så kan du altid tage fat i processen og se hvad den har skrevet til stdout. Det gøres på følgende måde.
Du skal selvfølgelig have screen inatalleret.
I crontab-filen skriver du så følgende.
@reboot screen -S sti/til/eksekverbar/.fil
Det er så en god ide at gemme det du vil køre i en undermappe i homemappen for den bruger du vil have skal køre programmet og så referere til den fulde sti fra crontab-filen så undgår du besværligt tilladelseshalløj og filen kommer ikke i karambolage med pakkesystemet hvis du bruger noget aådant.
Jeg har selv brugt denne metode til blandt andet at køre syncthing som spytter en masse informationer ud på stdout og som jeg måske kan have glæde af at læse senere. Jeg akan så bare forbinde med screen (læs selv op på dette) se hvad den skriver og så bare detache og lade programmet køre videre når jeg er færdig. Super smart og nyttigt til at debugge programmer på farten uden at afbryde dem.