Rspamd 3.14 markerar ett stort steg framåt för öppna spamfilter. Den nya versionen bjuder på mörkt läge i webbgränssnittet, snabbare fuzzy-hashning och en smartare Postfix-guide som förenklar e-postintegration. Under huven finns även ett nytt HTML-baserat analysverktyg som kan upptäcka strukturella likheter mellan skräppostmeddelanden – ett genombrott som gör det ännu svårare för spammare att smita igenom filtret.
Ett av de mest avancerade öppna källkodsprojekten inom e-postsäkerhet har just fått en rejäl uppdatering. Rspamd 3.14 är här – och med den kommer en kombination av tekniska förbättringar och visuella nyheter som både systemadministratörer och säkerhetsnördar lär uppskatta.
Ny generation av spamigenkänning
Den största nyheten i Rspamd 3.14 är något som kallas HTML fuzzy hashing – ett system som låter programmet känna igen strukturella likheter mellan HTML-meddelanden. Det betyder att Rspamd inte längre bara tittar på textinnehållet, utan även på hur själva e-postens layout och kodstruktur är uppbyggd.
Med denna teknik kan filtret upptäcka spammail som ändrat ord eller bilder, men som ändå följer samma underliggande mall. Resultatet är en finmaskigare och mer träffsäker klassificering av skräppost, vilket är avgörande när spammare försöker lura filtren med små variationer.
Stabilare och snabbare lagring
En annan viktig förbättring rör fuzzy storage-systemet, där Rspamd nu har gått över från ett UDP-baserat protokoll till fullt TCP-stöd. Det innebär att kommunikationen mellan servrar är mer tillförlitlig, särskilt under hög belastning.
Den nya implementationen kan dessutom automatiskt växla mellan protokoll, hantera anslutningar dynamiskt och använda korrekt datainramning. Det här minskar risken för dataförlust och gör systemet robustare i stora e-postmiljöer.
Webbgränssnittet får mörkt läge och ny stil
För de som föredrar att arbeta visuellt finns nu mörkt läge i Rspamd:s WebUI. Gränssnittet kan automatiskt anpassa sig efter systemets tema – eller så kan användaren växla manuellt.
Utvecklarna har dessutom uppdaterat ikonbiblioteket till FontAwesome-ikoner i SVG-format, vilket ger ett renare och modernare utseende jämfört med de äldre Glyphicons.
Automatisk Postfix-konfiguration
Rspamd 3.14 introducerar också en Postfix-guide som automatiserar mycket av den manuella konfigurationen via postconf. För e-postadministratörer betyder det mindre handpåläggning och snabbare integration mellan Rspamd och Postfix – en kombination som används i tusentals e-postservrar världen över.
Samtidigt har Milter-gränssnittet förbättrats med bättre hantering av ESMTP-argument och utökade Lua-API:er för att läsa metadata per mottagare. Det öppnar dörren för mer avancerade filterregler och skript.
Prestandalyft och bredare systemstöd
Under ytan har Rspamd-utvecklarna gjort stora arkitektoniska förändringar. Bland annat har man bytt ut GHashTable mot snabbare khash-strukturer, vilket ger märkbara prestandaförbättringar i interna hash-operationer.
Samtidigt breddas stödet för olika BSD-system. Version 3.14 inkluderar dedikerade GitHub Actions-arbetsflöden för FreeBSD, NetBSD och OpenBSD, med möjlighet att välja olika Lua-versioner för byggprocessen.
Stabilitet och felfixar
Slutligen innehåller versionen en rad stabilitetsförbättringar. Bland de mer tekniska fixarna finns åtgärder mot DNS-trunkering, ID-kollisioner, Redis-poolningsproblem, minnesläckor och fel i allokatorhantering.
Utöver det har man förfinat funktioner som Bayes-autolärning, URL-deduplicering och paketinstallation på NetBSD – små men viktiga förbättringar som bidrar till en mer pålitlig drift.
Sammanfattning
Rspamd 3.14 visar tydligt att utvecklarna inte bara fokuserar på att stoppa skräppost, utan även på prestanda, användarupplevelse och långsiktig stabilitet. Med ny fuzzy-teknik, mörkt läge, automatiserad Postfix-integration och bredare plattformsstöd tar Rspamd ännu ett steg mot att bli den mest avancerade öppna spamfiltret på marknaden.
$ Rspamd 3.14 — Kortfakta
HTML fuzzy hashing: upptäcker strukturell likhet mellan HTML-mail.
Den populära GPU-accelererade terminalemulatorn Kitty har fått en ny version – 0.44 – som bjuder på både prestandaförbättringar och stöd för den senaste textstandarden Unicode 17. Uppdateringen fokuserar tydligt på stabilitet och användarupplevelse, särskilt för macOS- och Wayland-användare.
Unicode 17 och bättre kontroll över miljövariabler
Unicode 17-stödet innebär att Kitty nu kan visa de senaste symbolerna, språk- och emojiuppdateringarna från Unicode-konsortiet. För de som arbetar med globaliserade system eller programmering på olika språk är detta ett viktigt steg framåt.
En annan nyhet är env-direktivet i kitty.conf. Det låter terminalen läsa in specifika miljövariabler direkt från användarens inloggningsskal vid start – något som tidigare krävde manuella inställningar. Det gör Kitty mer flexibel i miljöer där olika projekt eller utvecklingsmiljöer kräver särskilda variabler.
Finslipad grafik och nya visuella val
Kitty 0.44 fortsätter förfiningen av sin grafikmotor. Ett nytt alternativ, draw_window_borders_for_single_window, låter användare tvinga fram fönsterkanter även när bara ett enda fönster är öppet – praktiskt för den som vill ha en tydligare avgränsning i terminalens layout.
Buggar som orsakade svarta blinkningar vid flikstängning, felaktig tabbfältvisning, och onödigt hög CPU-användning när ligaturer var avstängda har rättats. Äldre GPU-drivrutiner utan 16-bitars texturstöd fungerar nu bättre, och hörnrenderingen har blivit mjukare vid låg DPI.
macOS: Stabilare, snabbare och mer energisnål
För macOS-användare märks uppdateringen tydligt. Kitty 0.44 fixar ett krasproblem kopplat till “Tahoe”-komponenten vid helskärmsläge, förbättrar energiförbrukningen med upp till 10 %, och gör hanteringen av filsläpp och fönsterbyte smidigare. En ny menyfunktion i det globala menyn låter användaren enkelt växla mellan öppna OS-fönster.
Även den populära Quick Access-terminalen har fått buggfixar som eliminerar krascher vid fontändringar.
Wayland: Bättre stöd för moderna Linux-miljöer
På Linux-sidan förbättras stödet för Wayland-kompositorer. Kitty korrigerar nu problem med centrerade paneler på Smithay-baserade system och hanterar snabba mushjulshändelser mer korrekt – en välkommen fix för användare med känsliga styrdon.
Smidigare sessionshantering
Version 0.44 introducerar även en rad förbättringar för sessioner. Det nya kommandot focus_tab låter användare definiera vilken flik som ska vara aktiv vid återställning, medan --base-dir-flaggan för save_as_session gör det lättare att organisera sessionsfiler i olika kataloger. Kitty sparar nu flikarnas visuella ordning och aktiv status, vilket gör återställningen mer intuitiv.
Små förbättringar med stor effekt
Utöver de stora nyheterna innehåller uppdateringen en rad finjusteringar: bättre automatisk färgtemahantering, smidigare hantering av animerade bilder och förbättrade hörn vid låg DPI.
Slutligen
Kitty 0.44 är ingen dramatisk omgörning, men den visar ett tydligt fokus på stabilitet, kompatibilitet och prestanda. Genom Unicode 17-stöd, smartare miljöhantering och förbättringar för både macOS och Wayland cementerar Kitty sin roll som en av de mest moderna och kraftfulla terminalemulatorerna på marknaden.
För användare som vill ha en snabb, flexibel och framtidssäker terminal är det här en uppdatering väl värd att installera.
Den som håller på med hemsidor, där är webappen wordpress den populäraste appen. Men även andra webappar som är skrivna i PHP kan behöva testas. Med egen testmiljö för LAMP kan man testa sina projekt. Har man till exempel en dator som inte klarar Windows 11, kan den bli en utmärkt NAS och testmiljö för webbappar skrivna i PHP eller annat språk.
Har du en gammal dator som du vill ge nytt liv? Du kan förvandla den till en webbtjänande server genom att installera en LAMP-stack – en kombination av Linux, Apache, MySQL/MariaDB och PHP[1]. Linux utgör operativsystemet, Apache agerar webbserver som levererar webbsidor, MySQL eller MariaDB sköter databasen där data lagras, och PHP är scriptspråket som binder samman allt för att skapa dynamiska webbsidor. I den här guiden går vi igenom, steg för steg, hur du installerar och konfigurerar en LAMP-stack på en Debian- eller Ubuntu-baserad server i hemmet – exempelvis en äldre dator du har stående.
Målgruppen är nybörjare med viss teknisk erfarenhet. Vi håller därför en lättförståelig, populärvetenskaplig ton samtidigt som vi säkerställer att allting blir tekniskt korrekt. Guiden täcker allt från installation av Apache, MySQL/MariaDB och PHP, till hur du får systemet att fungera i ditt lokala nätverk (LAN), vidare till att installera och konfigurera WordPress (ett populärt innehållshanteringssystem) och hur du kan administrera WordPress via kommandoraden med WP-CLI. Vi avslutar med grundläggande säkerhetsaspekter – såsom brandvägg, lösenordshantering och varför du inte bör exponera din hemserver direkt mot internet.
Översikt av innehåll:
Förberedelser: Vad du behöver och hur du förbereder servern och nätverket innan installation.
Installation av LAMP: Stegvis installation av Apache, MySQL/MariaDB och PHP på Debian/Ubuntu.
Installation av WordPress: Hur du laddar ner och konfigurerar WordPress på din LAMP-server.
WP-CLI: Användning av WordPress Command Line Interface för att administrera din WordPress-sajt via terminalen.
Säkerhet: Grundläggande åtgärder för att säkra din hemmaserver och WordPress-installation.
Avslutande tips: Några sista råd kring underhåll och vidare förbättringar.
Låt oss börja med att säkerställa att allting är på plats för installationen!
Förberedelser
Innan vi ger oss in på installationen, behöver du förbereda följande:
En dator med Linux (Debian eller Ubuntu Server): Installera gärna den senaste LTS-versionen av Ubuntu Server eller en stabil Debian-release på datorn du vill använda som server. Se till att systemet är uppdaterat (sudo apt update && sudo apt upgrade) och att du har administratörsrättigheter (sudo) på ett användarkonto.
Nätverksanslutning: Serverdatorn bör vara ansluten till ditt lokala nätverk, helst via kabel för stabilitet. Notera serverns lokala IP-adress (t.ex. 192.168.x.y) – du kan hitta den genom kommandot hostname -I eller via din routers gränssnitt. För att förenkla åtkomst inom hemnätverket kan du överväga att ge servern en statisk IP-adress på LAN: enklaste sättet är ofta att reservera en IP i routerns DHCP-inställningar baserat på serverns MAC-adress. Då får servern alltid samma adress på hemnätet, vilket underlättar när du ska ansluta till den.
Grundläggande kommandoradskunskaper: Vi kommer att använda terminalen flitigt för installation och konfiguration. Du bör kunna köra enkla Linux-kommandon och redigera konfigurationsfiler med en textredigerare som nano eller vim. Om servern är huvudlös (ingen skärm) kan du ansluta via SSH från en annan dator i nätverket.
Internetuppkoppling: För att ladda ner uppdateringar och programvara (Apache, MySQL, PHP, WordPress etc.) behöver servern internetåtkomst under installationen.
När ovanstående är ordnat är du redo att börja sätta upp din LAMP-stack!
Installation av LAMP
En LAMP-stack består av tre huvudsakliga komponenter att installera (utöver Linux som redan körs på din server): webbservern Apache, databasen MySQL/MariaDB och scriptspråket PHP. Vi går igenom installationen av dessa steg för steg på en Debian/Ubuntu-baserad distribution.
Installera Apache (webbserver)
Uppdatera paketindex: Öppna terminalen på din server och kör först en uppdatering av paketlistan:
sudo apt update
Installera Apache: Därefter installerar du Apache2 med apt:
sudo apt install apache2
På Ubuntu/Debian startar Apache automatiskt efter installationen och ställs in att köra vid uppstart. För säkerhets skull kan du kontrollera Apache-status:
sudo systemctl status apache2
Tjänsten bör visas som aktiv (running). Apache levereras med en standardsida (”It works!”) som du nu kan testa. Öppna en webbläsare på en klientdator i samma nätverk och navigera till http://<serverns-IP-adress> – du bör se Apaches välkomstsida som bekräftar att webbservern körs[3].
Aktivera Apache i brandväggen: Ubuntu har en inbyggd brandvägg (ufw). Tillåt HTTP- och HTTPS-trafik i brandväggen så att webbförfrågningar kan nå Apache:
sudo ufw allow ’Apache Full’ sudo ufw enable
Kommandot ’Apache Full’ öppnar port 80 (HTTP) och 443 (HTTPS) i brandväggen[4]. (OBS: Om ufw inte är installerat på Debian kan du antingen installera det eller använda annan brandväggslösning; på ett hemnätverk bakom en router kan du även välja att initialt lita på NAT:en, men det är bra att ha en lokal brandvägg som extra skydd.)
Installera MySQL/MariaDB (databas)
Installera databasservern: Kör följande kommando för att installera MySQL-server (i Ubuntu 20.04+ installeras i själva verket ofta MariaDB, en community-version av MySQL, men för enkelhet kallar vi den MySQL):
sudo apt install mysql-server
Under installationen kan du bli ombedd att sätta ett root-lösenord för MySQL (detta beror på distributionens version – vissa moderna Ubuntu-versioner sätter ingen root-lösenord och använder sockets-autentisering). Oavsett vilket, kommer vi strax att säkra installationen.
Starta och kontrollera MySQL: Precis som med Apache, kontrollera att databasservern är igång:
sudo systemctl start mysql # startar tjänsten om den ej redan är igång sudo systemctl enable mysql # ser till att den startar vid boot sudo systemctl status mysql # visar status
MySQL/MariaDB bör nu köras.
Säkra databasinstallationen: MySQL kommer med ett praktiskt script för grundläggande säkerhetshärdning. Kör:
sudo mysql_secure_installation
Detta guide-program frågar en serie frågor för att säkra din databasserver. Du kommer bland annat kunna: sätta eller uppdatera root-lösenordet (om det inte redan är satt), ta bort anonyma användarkonton, förhindra root-inloggning via fjärranslutning samt ta bort testdatabasen[5]. Acceptera att ta bort/inaktivera osäkra inställningar genom att svara Yes på frågorna. Efter att skriptet kört färdigt har du en grundsäkert konfigurerad MySQL/MariaDB-instans – kom ihåg det root-lösenord du eventuellt angav.
Installera PHP (scriptspråk)
Installera PHP och nödvändiga moduler: Installera PHP samt tillhörande Apache- och databaskopplingar med:
sudo apt install php libapache2-mod-php php-mysql
Paketet libapache2-mod-php kopplar samman PHP med Apache (så att Apache kan tolka .php-filer), och php-mysql tillåter PHP att prata med MySQL/MariaDB[6]. Utöver dessa grundläggande paket kan det vara klokt att installera några vanliga PHP-tillägg som WordPress och dess plugins kan behöva, t.ex. cURL, GD, mbstring, XML m.fl. Du kan installera flera på en gång:
(Ovanstående inkluderar vanliga tillägg; du kan alltid installera fler senare om något plugin kräver det.) När PHP och tilläggen är installerade, ladda om Apache så att eventuella nya moduler tas i bruk:
sudo systemctl restart apache2
Testa PHP (valfritt): För att verifiera att PHP fungerar med Apache kan du skapa en testfil. Kör t.ex.:
echo ”<?php phpinfo(); ?>” | sudo tee /var/www/html/info.php
Navigera sedan i webbläsaren till http://<serverns-IP>/info.php. Om du ser en sida med PHP-information (PHP-version och konfigurationsdetaljer) så fungerar PHP som det ska. Kom ihåg att ta bort testfilen senare av säkerhetsskäl (sudo rm /var/www/html/info.php), då den avslöjar detaljer om din PHP-konfiguration.
Brandvägg och lokal nätverksåtkomst
Efter att Apache, MySQL och PHP är installerade och körs, har du i princip en fungerande LAMP-server. Några viktiga punkter för att få allt att fungera smidigt på hemnätverket:
Brandvägg och portar: Vi aktiverade UFW-brandväggen och öppnade för ”Apache Full” tidigare, vilket innebär att din server tar emot trafik på port 80 (HTTP) och 443 (HTTPS). I ett hemmanätverk bakom en router är servern som standard inte tillgänglig utifrån internet (såvida du inte särskilt öppnar/forwardar portar på din router). För intern åtkomst inom LAN räcker det att brandväggen tillåter trafiken. Kontrollera att du kan nå Apache från en annan dator i nätverket via serverns IP-adress (som vi testade med välkomstsidan).
Lokal DNS (valfritt): Det kan bli lite omständligt att komma ihåg IP-adressen. Om du vill kan du på dina klientdatorer uppdatera deras hosts-fil så att t.ex. ett smidigt namn (som ”minserver.local”) pekar på serverns IP – eller använd din routers ev. funktion för lokala värdnamn. Detta är dock extra lyx; IP-adressen duger bra för att fortsätta installationen.
Statisk IP: Som nämnt bland förberedelserna, se till att serverns IP inte ändras över tid. Det bästa är att ställa in att den alltid får samma IP. Du kan antingen konfigurera detta i själva serverns nätverksinställningar (statisk IP via Netplan/DHCP override) eller mycket enkelt via routerns webbgränssnitt genom att binda serverns MAC-adress till en fast IP i DHCP (den enklaste lösningen enligt många). Detta förhindrar att servern plötsligt får en ny adress (vilket annars kan hända efter omstarter) och att dina bokmärken/inställningar till servern skulle sluta fungera.
Nu har vi en grundläggande LAMP-stack i drift. Dags att lägga till WordPress för att få en komplett hemsida!
Installation av WordPress
WordPress är ett av världens mest populära verktyg för att bygga webbplatser och bloggar. Vi kommer nu att installera WordPress på vår nya LAMP-server. Processen omfattar att skapa en databas åt WordPress, hämta själva WordPress-programvaran och konfigurera den.
Skapa en MySQL-databas för WordPress
WordPress behöver en egen databas att lagra all sin information i (inlägg, användare, inställningar, etc.). Vi använder MySQL/MariaDB som vi installerade för detta. Följande steg utförs i MySQL:s shell:
Logga in i MySQL: Kör sudo mysql -u root -p på servern för att logga in i MySQL prompten som root (administratör). Ange root-lösenordet du satte tidigare (om inget lösenord sattes, kör bara sudo mysql utan -p).
Skapa databas: När du fått MySQLs prompt (mysql>), skapa en ny databas som WordPress ska använda. Du kan kalla den vad du vill – i exemplet nedan används wordpress:
CREATE DATABASE wordpress;
Detta skapar en databas som heter ”wordpress”[9]. (Om du vill använda ett annat namn går det bra, notera det då för kommande steg.)
Skapa användare: För bättre säkerhet är det rekommenderat att inte låta WordPress använda root-kontot till databasen, utan skapa en dedikerad databas-användare. Skapa t.ex. en användare wordpressuser med ett lösenord:
CREATE USER ’wordpressuser’@’localhost’ IDENTIFIED BY ’ditt_lösenord’;
Byt ut ’ditt_lösenord’ mot ett starkt lösenord du väljer för databasanvändaren (minst 12 tecken, gärna slumpmässigt). Med detta kommando skapas en ny MySQL-användare wordpressuser som endast kan logga in från localhost (det vill säga från servern själv).
Ge användaren rättigheter: Nu ger vi den nya användaren fullständig åtkomst till den nya databasen:
GRANT ALL PRIVILEGES ON wordpress.* TO ’wordpressuser’@’localhost’;
Detta ger wordpressuser fulla rättigheter (ALL PRIVILEGES) på alla tabeller i databasen ”wordpress”. Det innebär att WordPress kan skapa tabeller, läsa, skriva och ändra data i databasen som behövs.
Spara ändringarna och avsluta: Inom MySQL behöver man uppdatera rättighetsinställningarna med:
FLUSH PRIVILEGES; EXIT;
FLUSH PRIVILEGES ser till att MySQL laddar in de nya användarrättigheterna utan omstart, och EXIT lämnar MySQL-prompten. Vi har nu en databas (wordpress) och en användare (wordpressuser) med tillhörande lösenord klara för WordPress att använda
Ladda ner och installera WordPress-filerna
Med databasen på plats är nästa steg att hämta WordPress-programvaran och placera den i webbserverns katalog.
Ladda ner WordPress: Gå till en temporär mapp, t.ex. /tmp, och ladda ner senaste WordPress-release (på svenska eller engelska – vi tar den engelska standardversionen här). Kör på servern:
cd /tmp curl -O https://wordpress.org/latest.tar.gz
Detta hämtar arkivfilen latest.tar.gz från WordPress officiella webbplats[13], som innehåller alla WordPress-filer.
Extrahera filer: Extrahera arkivet:
tar xzvf latest.tar.gz
Det skapar en katalog som heter wordpress/ med WordPress-filerna.
Flytta WordPress till webbplatsens rot: Apache serverar som standard filer från /var/www/html/. Vi flyttar nu över WordPress-filerna dit. Om du inte har andra webbplatser på servern kan vi lägga WordPress direkt i html-mappen:
sudo cp -a /tmp/wordpress/. /var/www/html/
Flaggan -a (archive) ser till att kopiera alla filer och behålla rättigheter. Slutet /. ser till att dolda filer också följer med. Efter denna kopiering ligger nu WordPress PHP-filer i /var/www/html, samma ställe som Apaches ”It works”-indexsida låg. Du kan ta bort den gamla index.html (Apache välkomstsidan) från /var/www/html för att inte den ska visas i stället för WordPress: sudo rm /var/www/html/index.html.
Ägarskap och rättigheter: För att WordPress senare ska kunna ladda upp filer, ändra inställningar och uppdatera själv, behöver webbservern (Apache) ägarskap till filerna. Apache kör som användaren www-data på Ubuntu/Debian. Sätt nu ägare för alla WordPress-filer till www-data:
sudo chown -R www-data:www-data /var/www/html
Detta ger webbservern kontroll över filerna[15]. Som ytterligare säkerhetsåtgärd kan man sätta strikta filrättigheter: t.ex. 750 för kataloger och 640 för filer, vilket hindrar obehöriga användare på systemet från att läsa/köra filerna. Exempel:
sudo find /var/www/html/ -type d -exec chmod 750 {} \; sudo find /var/www/html/ -type f -exec chmod 640 {} \;
(Detta är en rekommenderad utgångspunkt; WordPress bör fungera med dessa rättigheter, men vissa plugin kan kräva justeringar senare. Grundprincipen är att www-data ska ha access, men ingen annan behöver det.)
Konfigurationsfil (wp-config.php): WordPress behöver en konfigurationsfil med databasuppgifterna. Normalt kan detta göras genom installationsguiden i webbläsaren (nästa steg) – WordPress försöker då spara inställningarna åt dig. Tack vare att vi satt rätt ägarskap på filerna kan WordPress skapa filen själv. Om det av någon anledning inte lyckas, kan du manuellt skapa den genom att kopiera wp-config-sample.php till wp-config.php:
…och fylla i databasinformationen (DB_NAME, DB_USER, DB_PASSWORD) för wordpress-databasen och wordpressuser-användaren vi skapade[16]. Samt passa på att lägga till unika salter/nycklar för säkerhet (WordPress hemliga nycklar) enligt instruktion i filen – dessa kan genereras från WordPress.org:s hemliga nyckeltjänst. Om du istället låter webbinstallationsguiden hantera detta kan du hoppa över manuellt skapande; vi beskriver det nedan.
Slutför installationen via webbläsaren
Nu är alla filer på plats och databasen redo. Det är dags att köra WordPress berömda “fem-minuters installation” via webbgränssnittet:
Öppna installationssidan: På en dator i ditt nätverk, öppna webbläsaren och gå till http://<serverns-IP-adress>/ (eller om du satte ett värdnamn, använd det). Eftersom vi lade WordPress i webbrotkatalogen bör adressen visa WordPress installationsguide. Du blir först ombedd att välja språk för installationen. Välj exempelvis Svenska om du vill ha WordPress på svenska, eller fortsätt med engelska – det går alltid att ändra språk senare. Klicka “Fortsätt/Continue”.
Databasuppgifter: WordPress kommer sedan fråga efter databasnamn, användarnamn och lösenord. Ange de uppgifter du skapade tidigare:
Databasnamn:wordpress (om du valde det namnet, annars ditt egna namn)
Användarnamn:wordpressuser
Lösenord: det lösenord du satte för wordpressuser-kontot.
Databasserver:localhost (WordPress kör på samma server som databasen).
Tabellprefix: wp_ är standard och duger bra om du inte har speciella skäl att ändra.
Skicka iväg uppgifterna. WordPress kopplar nu upp mot databasen. Om allt är rätt ifyllt får du en bekräftelse och kan fortsätta.
Skapa administratörskonto: Nästa steg i guiden ber om information för sajtens grundkonfiguration:
Webbplatstitel: Namnet på din webbplats (t.ex. “Min Blogg”).
Administratörsanvändare: Ett administratörslogin för WordPress. Välj inte “admin” som användarnamn – ta något unikt.
Lösenord: Ett starkt lösenord för administratören föreslås automatiskt. Du kan använda det eller skriva ett eget, men se till att det är starkt (WordPress varnar om det är för svagt)[19].
Din e-postadress: Ange en e-post dit WordPress kan skicka återställningslänkar och notiser.
Sökmotorsynlighet: Du kan välja att avmarkera “Tillåt sökmotorer indexera denna sida” ifall du inte vill att din hemsida ska dyka upp på Google ännu (praktiskt för en testsajt på hemnätet). Denna inställning kan ändras senare.
Klicka sedan på “Installera WordPress” (Install WordPress). WordPress kommer nu att konfigurera klart allt i databasen.
Installation klar – logga in: Om inga fel uppstod möts du av en sida som säger att WordPress har installerats, och du kan klicka på “Logga in” för att gå till inloggningssidan (eller gå direkt till http://<server-IP>/wp-admin/). Logga in med det admin-användarnamn och lösenord du valde. Du tas då till WordPress administratörspanel (dashboard), där du kan börja skapa inlägg, sidor, ändra utseende etc.
Grattis! Du har nu en egen WordPress-sajt som körs på din hemmaserver. Men innan vi börjar använda den på allvar, låt oss titta på hur man kan sköta WordPress via terminalen med WP-CLI, samt hur man säkrar upp installationen.
WP-CLI – WordPress via terminalen
Att administrera WordPress via webbläsarens wp-admin-gränssnitt fungerar fint för det mesta. Men det finns ett kraftfullt verktyg för dig som inte räds terminalen: WP-CLI (WordPress Command Line Interface). WP-CLI låter dig hantera WordPress-sajten med kommandon direkt i terminalen, vilket kan vara både snabbare och smidigare för många uppgifter. Du kan till exempel uppdatera WordPress-kärnan, installera eller uppdatera plugins och teman, hantera användare, skapa inlägg med mera – allt utan att behöva klicka runt i webbläsaren. Detta är särskilt användbart om du administrerar flera sajter eller bara föredrar att automatisera och skripta saker.
Installation av WP-CLI
WP-CLI är ett fristående PHP-baserat verktyg. Så här installerar du det på din Ubuntu/Debian-server:
Hämta WP-CLI: Ladda ner WP-CLI som en PHP-arkivfil (.phar) till din server:
Detta laddar ner filen wp-cli.phar till din nuvarande katalog.
Testkör WP-CLI: Du kan nu prova köra verktyget med:
php wp-cli.phar –info
Om WP-CLI är nedladdat korrekt ser du information om miljön (PHP-version m.m.).
Gör WP-CLI körbar globalt: För att slippa skriva php wp-cli.phar varje gång, gör vi filen körbar och flyttar den till en katalog i PATH (så att den kan köras som ett vanligt kommando). Till exempel:
Detta flyttar filen och döper kommandot till wp (du kan välja annat namn om du vill)[23]. Testa nu med wp –info – du bör få liknande utskrift som tidigare, vilket bekräftar att installationen lyckades.
(Notera: På vissa distributioner kan WP-CLI finnas i pakethanteraren, men den metoden är inte alltid uppdaterad. Den officiella och rekommenderade vägen är som ovan att använda Phar-filen.)
Exempel på vad du kan göra med WP-CLI
Nu när WP-CLI är installerat, här är några vanliga administrationsuppgifter du kan utföra med det:
Uppdatera WordPress-kärnan: Istället för att logga in i wp-admin och klicka på uppdatering, kör bara:
wp core update && wp core update-db
Detta laddar ner och installerar senaste WordPress-versionen och uppdaterar databasen vid behov – allt i en handvändning.
Uppdatera plugins: Du kan uppdatera alla dina tillägg med ett enda kommando:
wp plugin update –all
Då hämtas och uppdateras samtliga installerade insticksprogram till senaste version. (Du kan också uppdatera ett enskilt plugin med wp plugin update plugin-namn om du vill.)
Installera och aktivera ett plugin eller tema: För att installera ett nytt plugin, till exempel cache-pluginet WP Super Cache, kör:
wp plugin install wp-super-cache –activate
Detta söker upp pluginet på WordPress plugin-katalog, laddar ner det och aktiverar det direkt. Du kan göra samma sak för teman med wp theme install tema-namn –activate.
Hantera användare och inlägg: WP-CLI låter dig även skapa nya användare, resetta lösenord, generera nya inlägg, exportera databasen, med mera. T.ex. för att skapa en ny användare:
wp user create johndoe [email protected] –role=author –user_pass=”MittLösen123″
skulle skapa en författaranvändare åt ”John Doe” med angivet lösenord.
Övrigt: Det finns kommando för i princip allt i WordPress: wp search-replace för att göra sök-och-ersätt i databasen (nyttigt vid t.ex. domänbyte), wp option update för att ändra inställningar, wp post list för att lista inlägg, osv. Du kan se alla tillgängliga kommandon med:
wp help
eller wp <subcommand> –help för detaljer om ett specifikt kommando.
Som du märker kan WP-CLI kraftigt förenkla underhållet. Det är helt frivilligt att använda – allt detta kan göras via det grafiska gränssnittet också – men för den tekniskt nyfikne är det ett utmärkt verktyg som sparar tid och ger mer kontroll.
(Säkerhetstips: När du använder WP-CLI på en produktionssajt som är åtkomlig från internet, tänk på att kommandon som uppdaterar saker sker direkt. Det är klokt att ta backup innan större uppdateringar, även om WP-CLI i sig inte är farligt.)*
Säkerhet
Nu har vi en fungerande WordPress-server i ditt hemnätverk. Innan vi nöjt lutar oss tillbaka är det viktigt att titta på grundläggande säkerhet. Att köra en server innebär ansvar att skydda den från obehörig åtkomst och attacker. Här är några viktiga säkerhetsaspekter och tips:
Brandvägg och åtkomstbegränsning: Vi har redan aktiverat UFW-brandväggen och öppnat nödvändiga portar för webbservern internt. För en hemmaserver som inte ska nås från internet räcker detta. Exponera inte din server mot internet i onödan. Om du inte absolut behöver fjärråtkomst utifrån, låt bli att öppna portforwarding på din router för port 80/443. En hemserver utan rätt skydd kan snabbt bli utsatt för intrångsförsök. I diskussioner på nätet avråder erfarna användare starkt från att ha en server direkt exponerad mot internet utan brandvägg – om din server inte har en avancerad brandväggskonfiguration, koppla bort den från direkt internet. Håll den bakom din router/NAT där den är skyddad. (Om du måste ge åtkomst utifrån, överväg att sätta upp en VPN, använda en reverse proxy-tjänst som Cloudflare Tunnel, eller åtminstone se till att HTTPS/SSL är använt och att du har extra autentisering.)
Starka lösenord överallt: Använd starka, unika lösenord för alla konton – det inkluderar MySQL-databasens användare, WordPress admin-konto, samt Linux-användare (särskilt om SSH är åtkomligt). Undvik enkla eller vanliga lösenord. WordPress gav en styrkeindikator för admin-lösenordet; följ den rekommendationen. Byt gärna ut standardanvändarnamnet “admin” till något annat för WordPress admin-kontot, ifall du råkat välja det.
Håll systemet uppdaterat: En av de viktigaste säkerhetsåtgärderna är att kontinuerligt uppdatera din programvara. Se till att din Ubuntu/Debian får säkerhetsuppdateringar (du kan köra sudo apt update && sudo apt upgrade manuellt regelbundet, eller aktivera automatiska säkerhetsuppdateringar). Detsamma gäller för WordPress och dess tillägg/teman – föråldrade plugins med kända sårbarheter är en vanlig angreppsvektor. Använd antingen WP-CLI eller WordPress inbyggda uppdateringsfunktion för att hålla allt up-to-date. Ett tips är att i WordPress-inställningarna aktivera automatiska uppdateringar för mindre release-versioner och plugins vid behov.
Säkerhet i WordPress: Överväg att installera ett säkerhetsplugin i WordPress som ytterligare skyddslager. Populära alternativ är t.ex. Wordfence eller Sucuri som kan skanna efter malware och blockera misstänkt trafik. Dessa kan hjälpa att upptäcka och stoppa attacker mot din sajt. Se också till att endast behövliga plugins är installerade och radera de du inte använder (färre plugins minskar potentiella sårbarheter).
Begränsa exponering på nätverket: Eftersom detta är en hemmaserver för internt bruk, se till att den endast är nåbar där det behövs. Du kan till exempel ställa in UFW-regler som begränsar port 80/443 så att de bara kan nås från din lokala subnät (t.ex. sudo ufw allow from 192.168.0.0/24 to any port 80 om ditt LAN är 192.168.0.x). Då blockeras även eventuell åtkomst från utanför nätverket. Om du har SSH igång, överväg att byta SSH-port från 22 till något annat, och använd nyckelbaserad inloggning för att förhindra lösenordsgissning.
SSL/TLS för webb: Även om sajten bara körs på LAN kan det vara bra att sätta upp HTTPS om du någon gång exponerar den. På internet skulle vi absolut rekommendera att skaffa ett Let’s Encrypt-certifikat för din domän (om du har en), eller åtminstone ett självsignerat certifikat för kryptering på LAN. HTTPS krypterar trafiken så att ingen utomstående kan avlyssna lösenord eller data som skickas.
Regelbundna backuper: Ta för vana att säkerhetskopiera din WordPress-databas och eventuella uppladdade filer. Eftersom detta är på en egen server kan du skripta en mysqldump av databasen då och då, eller använda ett WordPress-backupplugin. Spara backuperna på en annan enhet. Detta skyddar dig ifall något går fel (t.ex. en uppgradering som strular till det, hårddiskfel, eller om du råkar radera något av misstag).
Sammanfattningsvis handlar säkerhet om lager-på-lager: brandvägg, begränsad åtkomst, starka lösenord, uppdateringar och säkerhetskopior. Genom att följa dessa råd skyddar du din hemmaserver mot de vanligaste riskerna och kan tryggt experimentera vidare. Tänk på: om du någon gång öppnar servern mot internet, var extra noggrann med alla ovanstående punkter – internet är fullt av bottar som skannar efter sårbara servrar.
Avslutande tips
Du har nu en fullt fungerande LAMP-server med WordPress i ditt hemnätverk! Här är några avslutande tips för att ta ditt projekt vidare och hålla allting snurrande:
Lär känna WordPress och fortsätt anpassa: Logga in på WordPress och utforska dess adminpanel. Byt till ett tema du gillar, skapa några sidor/inlägg och prova installera något nytt plugin. Det finns massor av gratis teman och plugins att utforska för nästan alla behov. Kom dock ihåg att inte installera för många onödiga plugin – håll det till det du verkligen använder, både för prestanda och säkerhet.
Prestanda på hemservern: En äldre dator kan ha begränsad prestanda. Om du märker att sajten är långsam, fundera på att installera ett cache-plugin (t.ex. WP Super Cache vi nämnde) för att snabba upp sidladdningar genom att servera statiska sidor. Se också till att onödiga tjänster inte körs på servern och konsumerar resurser. För enstaka användare i ett LAN är dock prestandakravet oftast lågt.
Utforska fler möjligheter: Nu när din server är igång, kanske du vill köra fler tjänster på den? Du kan exempelvis sätta upp phpMyAdmin för enklare databashantering via webben (om än WP-CLI och MySQL-shell räcker långt), eller installera andra webbapplikationer vid sidan av WordPress (kom ihåg att då konfigurera Apache virtuella värdar för flera sajter). Din LAMP-server kan vara värd för flera projekt samtidigt. Varje sajt kan få sin egen databas och egen katalog under /var/www.
Underhåll är nyckeln: Som med alla system är regelbundet underhåll viktigt. Håll ett öga på uppdateringar både för servern och WordPress. Städa bort sådant du inte behöver. Och framför allt, fortsätt lära dig! Om något problem uppstår, konsultera loggfilerna (Apache loggar finns i /var/log/apache2/ och WordPress fel loggas ofta via PHP). Communityn för både WordPress och Linux är stor – det finns forum och guider för det mesta. Minns att nyckeln till en framgångsrik webbplats inte bara är själva uppsättningen, utan dessfortlöpande underhåll och förbättring[33]. Med andra ord, fortsätt pyssla om din server även efter att den är satt i drift.
Vi hoppas denna guide hjälpt dig komma igång med att installera LAMP-stack och WordPress på din hemmadator. Lycka till med ditt webbprojektexperiment och ha kul på vägen! Skulle något krångla, finns det många resurser online – och glöm inte att backup är din bästa vän när du experimenterar. Happy hosting!
Förklaring av vad de olika delkomponenterna gör
Apache: En populär webbserverprogramvara som körs på servern för att leverera webbsidor till besökarnas webbläsare. Apache tar emot förfrågningar från webbläsare och svarar med innehållet (t.ex. din WordPress-sida). I LAMP-stacken utgör Apache “webbserver”-delen.
Brandvägg: Ett säkerhetssystem som skyddar nätverk och datorer mot intrång genom att kontrollera vilken trafik som tillåts passerar. En brandvägg kan konfigureras att bara släppa igenom viss trafik (t.ex. webbtrafik på port 80/443 till din WordPress-server) och blockera obehöriga anslutningar.
Debian: En Linux-distribution (operativsystem) som främst används för servrar och infrastruktur. Debian är känt för stabilitet och öppen källkod. I det här sammanhanget kan Debian vara serverns operativsystem där du installerar LAMP-komponenterna och WordPress.
IP-adress: En unik sifferkombination som identifierar en enhet (dator, server m.m.) i ett nätverk[4]. Genom att använda serverns IP-adress kan andra datorer i hemmanätverket hitta fram till din WordPress-server och visa webbsidan.
LAMP: Akronym för Linux, Apache, MySQL, PHP[5]. Det är en paketlösning (s.k. tech stack) där Linux är operativsystemet, Apache är webbservern, MySQL är databashanteraren och PHP är programmeringsspråket. En LAMP-stack innehåller alltså allt som behövs för att driva en WordPress-webbplats på en lokal server.
LAN (Local Area Network): Ett lokalt nätverk som består av enheter inom ett begränsat område (t.ex. i hemmet). I ett hemmanätverk (LAN) är din WordPress-server ansluten till samma router som dina andra enheter, vilket gör att de kan kommunicera direkt med servern inom det lokala nätet.
Linux: Ett operativsystem med öppen källkod som är vanligt på servrar. Linux är grunden i LAMP-stacken (L:et står för Linux) och utgör serverns OS. Både Debian och Ubuntu är Linux-varianter; en av dem körs på serverdatorn för att du ska kunna installera Apache, MySQL, PHP och WordPress.
MySQL/MariaDB: Detta är databashanteringssystem som används för att lagra och hämta all information som hör till din webbplats – till exempel inlägg, användarkonton och inställningar. WordPress är byggt för att arbeta med databaser av den här typen. På moderna Linux-servrar installeras ofta MariaDB som ett alternativ till MySQL; de fungerar i princip likadant och är fullt kompatibla med WordPress. I en LAMP-stack utgör MySQL eller MariaDB den komponent som ansvarar för själva datalagringen.
PHP: Ett skriptspråk på serversidan som används för att skapa dynamiska webbsidor[9]. WordPress är skrivet i PHP, vilket innebär att PHP-kod körs på servern för att generera HTML-sidorna. När en användare besöker din WordPress-sida så tolkar PHP koden och bygger ihop sidan som sedan skickas till användarens webbläsare.
Port: Inom datanätverk avser en port ett nummer som fungerar som en kanal eller “adress” för en viss typ av trafik[10]. Till exempel använder webbtrafik vanligtvis port 80 för HTTP och port 443 för HTTPS. För att din WordPress-server ska vara åtkomlig i nätverket behöver rätt port öppnas (t.ex. port 80 så att hemsidan kan nås, och port 22 för SSH-fjärrinloggning), ofta i samarbete med brandväggen.
Root-användare: Det högsta administratörskontot i ett Linux-system (kallas även superuser) som har obegränsade rättigheter[11]. Root-användaren kan installera program, ändra systeminställningar och utföra alla kommandon. Av säkerhetsskäl loggar man vanligtvis inte in direkt som root; istället använder man ett normalt användarkonto och sudo-kommandot för att tillfälligt få root-behörighet vid administration av servern.
SSH (Secure Shell): Ett protokoll som används för att ansluta säkert till en annan dator över nätverket[12]. Via SSH kan du öppna en terminal till din server och köra kommandon på distans som om du satt vid den. I vårt sammanhang används SSH för att fjärrstyra Debian/Ubuntu-servern i hemmanätverket – till exempel för att installera paket eller hantera WordPress via kommandoraden.
Ubuntu: En av de mest populära Linux-distributionerna för datoranvändare, baserad på Debian[13]. Ubuntu finns i versioner för servrar och är känt för att vara användarvänligt. I det här sammanhanget kan Ubuntu (Server-edition) användas som operativsystem på din hemmaserver innan du installerar LAMP-paketet och WordPress.
WordPress: Ett mycket populärt publiceringsverktyg (Content Management System, CMS) för webben[14]. Med WordPress kan man enkelt skapa och hantera en hemsida eller blogg via ett webbgränssnitt. I vår situation installerar du WordPress på LAMP-servern i hemmanätverket, vilket låter dig driva en egen lokal webbplats och administrera innehållet genom WordPress kontrollpanel.
WP-CLI:WordPress Command Line Interface, ett verktyg som låter dig hantera WordPress-webbplatsen via kommandoraden[15]. Med WP-CLI kan du sköta många administrationsuppgifter direkt i terminalen – till exempel installera eller uppdatera WordPress, lägga till användare, hantera teman och insticksprogram – utan att behöva använda WordPress grafiska webbgränssnitt.
Detta projekt använder en klassisk LAMP-stack:
– Linux (Ubuntu/Debian)
– Apache som webbserver
– MySQL eller MariaDB som databas
– PHP som serversidespråk
WordPress installeras direkt i /var/www/html och kopplas till en dedikerad databas.
WP-CLI gör det möjligt att administrera sajten via terminalen.
Servern är endast tillgänglig inom hemnätverket (LAN) via statisk IP-adress.
Portar 80 (HTTP) och 443 (HTTPS) tillåts lokalt via ufw.
Perfekt för testning av egna webbappar, teman och plugins utan att publicera dem online.
Att förstå och hantera processer är en av de mest grundläggande färdigheterna i Linux. När du kör ett program – vare sig det är en webbläsare, ett terminalkommando eller en systemtjänst – skapas en process. Ibland behöver du som användare ta kontroll över dessa processer: kanske för att ett program har hängt sig, för att frigöra resurser eller för att starta om en tjänst. I Linux görs detta genom att skicka signaler till processer via terminalen. I den här guiden går vi igenom vad processer är, hur signaler fungerar och hur du kan använda viktiga kommandon som kill, killall, pkill, fuser, pgrep och skill för att söka upp, pausa eller avsluta processer – med tydliga exempel för nybörjare.
Att kunna döda en process från terminalen kan ibland vara nödvändigt.
Vad är en process i Linux?
En process är ett körande program på datorn. Operativsystemet Linux hanterar många processer samtidigt och ger varje process ett unikt process-ID (PID) för identifiering. Processer kan vara synliga användarprogram (som ett webbrowserfönster) eller systemtjänster som körs i bakgrunden. Linux-kärnan ansvarar för att schemalägga processer, fördela resurser och hålla isär deras minne och rättigheter. Som användare kan man med kommandon i terminalen inspektera och påverka processer, till exempel om ett program har hängt sig eller om man behöver avsluta en process som förbrukar för mycket resurser.
Varför behöver man hantera eller avsluta processer?
Vanliga anledningar till att manuellt hantera (eller döda) processer är att ett program inte svarar, har låst sig eller använder orimligt mycket CPU/minne. Ibland behöver man avsluta ett program som körs i bakgrunden, starta om en tjänst genom att skicka en viss signal, eller frigöra en fil eller nätverksport som en process håller låst. Genom att skicka signaler till processer kan man be dem avsluta på ett kontrollerat sätt eller tvinga fram en avslutning om de inte reagerar. Att känna till de viktigaste kommandona för processhantering – såsom kill, killall, pkill, fuser, pgrep och skill – är därför värdefullt. I denna artikel går vi igenom vad signaler är och hur man använder dessa kommandon med praktiska exempel.
Signaler i Linux och vanliga signaler
En signal är ett meddelande som operativsystemet kan skicka till en process för att uppmärksamma den på en händelse eller begära en viss åtgärd. Signaler identifieras både med namn (ofta med prefixet SIG) och ett nummer. Till exempel är SIGTERM signal nummer 15, SIGKILL nummer 9, SIGHUP nummer 1 och SIGSTOP nummer 19. När en signal skickas till en process avbryts den normalt tillfälligt för att hantera signalen. Vissa signaler kan fångas upp av processen (som då kan välja att ignorera dem eller utföra städning), medan andra inte kan ignoreras.
Några vanliga signaler och deras betydelser är:
SIGTERM (15) – Termineringssignal. Standard-signalen som skickas av kommandot kill. Den ber processen att avsluta sig själv gracefully, dvs. på ett kontrollerat sätt[2]. Processen får en chans att städa upp, spara sitt tillstånd, stänga filer etc., innan den avslutas.
SIGKILL (9)– Kill-signalen. Detta är en tvångsavslutning som inte kan fångas eller ignoreras av processen[1][3]. Operativsystemet terminerar processen omedelbart när det får denna signal, även om processen hängt sig. SIGKILL bör användas som sista utväg när en process inte reagerar på vänligare signaler, eftersom ingen städning sker och t.ex. temporära filer eller resurser kan lämnas i osäkert tillstånd[3].
SIGHUP (1)– Hang up. Ursprungligen indikerar detta att den terminal (TTY) som startade processen kopplades ned. För många bakgrundstjänster (daemons) har det blivit konvention att SIGHUP innebär att processen ska läsa om sin konfiguration eller starta om sig själv[4]. Man kan alltså skicka SIGHUP till en daemon för att få den att göra en mjuk omstart eller ladda om inställningar.
SIGSTOP (19)– Stoppsignal. Pauserar en process (fryser dess exekvering) utan att avsluta den, och kan inte ignoreras av processen[1]. Detta motsvarar att köra ett program i bakgrunden genom att trycka Ctrl+Z i terminalen. En stoppad process kan återupptas igen genom att skicka SIGCONT (continue) eller föras in i förgrunden med shell-kommandon som fg. SIGSTOP/SIGCONT är användbara om man tillfälligt vill pausa en process (t.ex. för felsökning) utan att döda den.
Det finns många fler signaler (för att lista alla standard-signaler kan man köra kill -l eller fuser -l i terminalen). Som nybörjare är det viktigast att förstå att SIGTERM är standardmetoden att avsluta processer på ett snällt sätt, SIGKILL är en tvingande nödlösning, och att signaler som SIGHUP och SIGSTOP har speciella användningsområden. Nästa steg är att använda kommandon som skickar dessa signaler till processer.
Kommandot kill – avsluta processer med PID
Det mest grundläggande sättet att skicka en signal till en process är med kommandot kill. Namnet låter brutalt, men kill skickar egentligen en godtycklig signal (som standard SIGTERM) till en eller flera processer utifrån deras PID. För att använda kill måste du alltså känna till processens ID-nummer. Detta kan man ta reda på med verktyg som ps (processlista), top eller pgrep (mer om pgrep nedan).
Syntax: kill [signal] PID … (om ingen signal anges skickas SIGTERM som standard).
Exempel på användning:
# Skicka standardsignalen SIGTERM (15) till process med PID 1234 kill 1234
Kommandot ovan ber processen 1234 att avsluta sig själv snällt (SIGTERM är default för kill[2]). Om processen inte avslutas kan man behöva skicka en mer drastisk signal:
# Tvinga avslutning av process 1234 med SIGKILL (9) kill -9 1234
Här används flaggan -9 för att skicka signal 9 (SIGKILL), vilket omedelbart dödar processen[3]. Notera att man också kan skriva kill -SIGKILL 1234 – många signaler kan anges antingen med nummer, med fullt namn (t.ex. -SIGKILL) eller förkortat utan ”SIG” (t.ex. -KILL), alla dessa är ekvivalenta.
Ett normalfall är att först försöka med en vanlig kill (SIGTERM) och ge processen åtminstone några sekunder att avsluta sig på rätt sätt. Om den fortsatt vägrar dö eller hänger sig, kan man följa upp med kill -9 för att garantera att den försvinner. SIGKILL kan som sagt inte ignoreras av processen[5].
Kommandot kill kan även skicka andra signaler. Till exempel kan man skicka SIGHUP (1) för att instruera en process att starta om eller läsa om konfiguration:
# Skicka SIGHUP (1) till process 5678, ofta för att få en daemon att läsa om sin config kill -1 5678 # -1 motsvarar SIGHUP kill -HUP 5678 # detta är likvärdigt med -1
På liknande sätt kan kill -STOP användas för att pausa en process och kill -CONT för att fortsätta en pausad process. Om du är osäker på signalnamnet eller numret kan du skriva:
# Lista alla signals namn och nummer kill -l
Detta listar alla signaler som systemet känner till (t.ex. får du reda på att 15 = TERM, 9 = KILL, 1 = HUP, etc.).
Tips: kill är inbyggt i många shell (som Bash). Oftast räcker det att ange PID, men var försiktig så att du inte råkar ange fel PID. Det är alltid en bra idé att dubbelkolla med exempelvis ps eller pgrep att du har rätt process. Som vanlig användare kan du bara skicka signaler till processer du äger (startat själv), medan root-användaren kan signalera alla processer.
Kommandot killall – döda processer utifrån namn
Med killall kan du skicka en signal till samtliga processer som matchar ett givet kommando-namn. Till skillnad från kill behöver du alltså inte känna till PID; istället anger du namnet på processen/programmet. Som standard skickar killall också SIGTERM om ingen annan signal anges[6].
Syntax: killall [flaggor] [signal] namn…
Ett enkelt exempel:
# Försöker stänga alla processer som heter ”firefox” med SIGTERM killall firefox
Ovanstående kommando försöker avsluta alla körande Firefox-processer (t.ex. om flera webbläsarfönster är öppna) genom att skicka SIGTERM till dem. Om de inte stänger sig ordentligt kan man tvinga dem:
# Döda alla ”firefox”-processer med SIGKILL (9) killall -9 firefox
Flaggan -9 fungerar här likadant som för kill. Man kan även specificera signalnamn, till exempel killall -KILL firefox gör samma sak. Under huven skickar killall signalen till alla processer med det angivna namnet[6].
Det är viktigt att ange processen vid exakt namn. killall matchar som default hela kommandonamnet. Till exempel, killall vi dödar processer vars namn är precis ”vi”, men inte ”vim”. Man kan använda flaggan -I för att ignorera skillnad mellan versaler/gemener vid namnmatchning, eller -r för att tolka namnet som ett regular expression (regex) om man vill ha mer flexibel matchning[7]. Exempelvis skulle killall -r -9 ^firefox med regex döda alla processer vars namn börjar med ”firefox”.
Några andra praktiska flaggor för killall är: – -i (interactive) – frågar om bekräftelse före varje enskild process som ska dödas. Bra för säkerhets skull om man är osäker. – -v (verbose) – skriver ut information om huruvida signalen lyckades skickas till var och en. – -u användare – begränsa till processer som ägs av en viss användare. T.ex. killall -u alice firefox skulle bara försöka döda Alice instanser av firefox.
Varning: killall på Linux är harmlöst om du anger ett specifikt processnamn, men se upp så att du inte misstar det för det helt annorlunda kommandot killall på vissa Unix-system (som Solaris) där killall utan argument faktiskt försöker döda alla processer. På Linux är killall en del av psmisc-paketet och fungerar enligt ovan. Ange alltid explicit ett processnamn när du använder detta kommando.
Kommandot pkill – skicka signal utifrån sökmönster
pkill liknar killall genom att det låter dig avsluta processer baserat på namn, men det är mer flexibelt. Namnet pkill står för ”process kill” och är kopplat till kommandot pgrep (process grep). I själva verket är pkill en variant av pgrep som istället för att lista processer skickar en signal till dem som matchar kriteriet[8]. pkill använder sig av mönstermatchning (standardmässigt regular expressions) på processernas namn eller andra attribut.
Syntax: pkill [flaggor] [signal] mönster
Om ingen signal anges så skickar pkill som vanligt SIGTERM (15)[9]. Mönstret kan vara en del av processens namn. Exempel:
# Försök avsluta alla processer vars namn innehåller ”chrome” pkill chrome
Ovan kommando skulle skicka SIGTERM till alla processer som matchar regex-mönstret ”chrome” i sitt namn (så det träffar t.ex. både chrome och chromium om de körs). Vill man vara specifik att namnet ska matcha exakt, kan man använda flaggan -x (exact match). Alternativt kan man skriva regex med ^ och $ för att ange början/slut på namnet:
# Avsluta alla processer som heter exakt ”ssh” (inte bara innehåller ”ssh”) pkill -x ssh
Man kan på liknande sätt som med killall använda -9 eller -KILL för att skicka SIGKILL:
# Tvinga bort alla processer vars namn matchar ”chrome” pkill -9 chrome
Ett praktiskt användningsområde är att skicka andra signaler. Till exempel för att be en tjänst ladda om sin konfiguration (vilket ofta görs med SIGHUP) kan du göra:
# Ladda om Nginx konfiguration genom att skicka SIGHUP (1) till alla ”nginx”-processer pkill -HUP nginx
Detta utnyttjar att många tjänster (inklusive Nginx) tolkar SIGHUP som signal att läsa om config[10][11].
pkill har flera användbara flaggor för att begränsa vilka processer som träffas: – -f – matcha mot hela kommandoraden istället för bara basnamnet. T.ex. pkill -f ”python myscript.py” skulle matcha kommandoraden som innehåller texten python myscript.py (användbart om processen har ett generiskt namn men unika argument). – -u användare – matcha bara processer som körs av en viss användare (eller lista av användare). T.ex. pkill -u bob ssh dödar ssh-processer som körs av användaren bob. – -n / -o – matcha endast den nyaste respektive äldsta processen som uppfyller mönstret. Detta är bra om man t.ex. vill döda den senast startade instansen av något. – -c – (i vissa varianter) visa antal träffade processer istället för att döda (eller används i pgrep specifikt – se man pkill/pgrep).
En viktig sak med pkill är att det är lätt att matcha bredare än avsett om man inte är försiktig med mönstret. Till exempel kan pkill ssh även döda en process som heter ssh-agent eftersom ”ssh” ingår i namnet. Därför är ett gott råd att först testa mönstret med pgrep (som bara listar träffar) innan man kör pkill. Exempel:
pgrep -l chrome # listar PIDs och namn för processer som matchar ”chrome”
Om utdata ser rimlig ut så kan man sedan byta ut pgrep mot pkill med samma mönster för att faktiskt skicka signalen.
Kommandot pgrep – hitta processer utifrån namn eller villkor
Som nämnt är pgrep syskonverktyget till pkill. Istället för att skicka signaler listar pgrep helt enkelt ut process-ID för processer vars namn eller andra attribut matchar ett mönster. Formatet liknar pkill:
Syntax: pgrep [flaggor] mönster
Standardbeteendet är att matcha processnamn (kommandots namn) mot ett angivet mönster (som tolkas som regex). pgrep skriver ut matchande PIDs, ett per rad. Några exempel:
# Hitta PID för alla processer vars namn innehåller ”ssh” pgrep ssh
# Hitta PID för processen som heter exakt ”gnome-shell” pgrep -x gnome-shell Hantera processer i Linux från terminalen – En nybörjarguide
Vad är en process i Linux?
En process är ett körande program på datorn. Operativsystemet Linux hanterar många processer samtidigt och ger varje process ett unikt process-ID (PID) för identifiering. Processer kan vara synliga användarprogram (som ett webbrowserfönster) eller systemtjänster som körs i bakgrunden. Linux-kärnan ansvarar för att schemalägga processer, fördela resurser och hålla isär deras minne och rättigheter. Som användare kan man med kommandon i terminalen inspektera och påverka processer, till exempel om ett program har hängt sig eller om man behöver avsluta en process som förbrukar för mycket resurser.
Varför behöver man hantera eller avsluta processer?
Vanliga anledningar till att manuellt hantera (eller döda) processer är att ett program inte svarar, har låst sig eller använder orimligt mycket CPU/minne. Ibland behöver man avsluta ett program som körs i bakgrunden, starta om en tjänst genom att skicka en viss signal, eller frigöra en fil eller nätverksport som en process håller låst. Genom att skicka signaler till processer kan man be dem avsluta på ett kontrollerat sätt eller tvinga fram en avslutning om de inte reagerar. Att känna till de viktigaste kommandona för processhantering – såsom kill, killall, pkill, fuser, pgrep och skill – är därför värdefullt. I denna artikel går vi igenom vad signaler är och hur man använder dessa kommandon med praktiska exempel.
Signaler i Linux och vanliga signaler
En signal är ett meddelande som operativsystemet kan skicka till en process för att uppmärksamma den på en händelse eller begära en viss åtgärd. Signaler identifieras både med namn (ofta med prefixet SIG) och ett nummer. Till exempel är SIGTERM signal nummer 15, SIGKILL nummer 9, SIGHUP nummer 1 och SIGSTOP nummer 19[1]. När en signal skickas till en process avbryts den normalt tillfälligt för att hantera signalen. Vissa signaler kan fångas upp av processen (som då kan välja att ignorera dem eller utföra städning), medan andra inte kan ignoreras.
Några vanliga signaler och deras betydelser är:
SIGTERM (15) – Termineringssignal. Standard-signalen som skickas av kommandot kill. Den ber processen att avsluta sig själv gracefully, dvs. på ett kontrollerat sätt[2]. Processen får en chans att städa upp, spara sitt tillstånd, stänga filer etc., innan den avslutas.
SIGKILL (9) – Kill-signalen. Detta är en tvångsavslutning som inte kan fångas eller ignoreras av processen[1][3]. Operativsystemet terminerar processen omedelbart när det får denna signal, även om processen hängt sig. SIGKILL bör användas som sista utväg när en process inte reagerar på vänligare signaler, eftersom ingen städning sker och t.ex. temporära filer eller resurser kan lämnas i osäkert tillstånd[3].
SIGHUP (1) – Hang up. Ursprungligen indikerar detta att den terminal (TTY) som startade processen kopplades ned. För många bakgrundstjänster (daemons) har det blivit konvention att SIGHUP innebär att processen ska läsa om sin konfiguration eller starta om sig själv[4]. Man kan alltså skicka SIGHUP till en daemon för att få den att göra en mjuk omstart eller ladda om inställningar.
SIGSTOP (19) – Stoppsignal. Pauserar en process (fryser dess exekvering) utan att avsluta den, och kan inte ignoreras av processen[1]. Detta motsvarar att köra ett program i bakgrunden genom att trycka Ctrl+Z i terminalen. En stoppad process kan återupptas igen genom att skicka SIGCONT (continue) eller föras in i förgrunden med shell-kommandon som fg. SIGSTOP/SIGCONT är användbara om man tillfälligt vill pausa en process (t.ex. för felsökning) utan att döda den.
Det finns många fler signaler (för att lista alla standard-signaler kan man köra kill -l eller fuser -l i terminalen). Som nybörjare är det viktigast att förstå att SIGTERM är standardmetoden att avsluta processer på ett snällt sätt, SIGKILL är en tvingande nödlösning, och att signaler som SIGHUP och SIGSTOP har speciella användningsområden. Nästa steg är att använda kommandon som skickar dessa signaler till processer.
Kommandot kill – avsluta processer med PID
Det mest grundläggande sättet att skicka en signal till en process är med kommandot kill. Namnet låter brutalt, men kill skickar egentligen en godtycklig signal (som standard SIGTERM) till en eller flera processer utifrån deras PID. För att använda kill måste du alltså känna till processens ID-nummer. Detta kan man ta reda på med verktyg som ps (processlista), top eller pgrep (mer om pgrep nedan).
Syntax: kill [signal] PID … (om ingen signal anges skickas SIGTERM som standard).
Exempel på användning:
# Skicka standardsignalen SIGTERM (15) till process med PID 1234 kill 1234
Kommandot ovan ber processen 1234 att avsluta sig själv snällt (SIGTERM är default för kill[2]). Om processen inte avslutas kan man behöva skicka en mer drastisk signal:
# Tvinga avslutning av process 1234 med SIGKILL (9) kill -9 1234
Här används flaggan -9 för att skicka signal 9 (SIGKILL), vilket omedelbart dödar processen[3]. Notera att man också kan skriva kill -SIGKILL 1234 – många signaler kan anges antingen med nummer, med fullt namn (t.ex. -SIGKILL) eller förkortat utan ”SIG” (t.ex. -KILL), alla dessa är ekvivalenta.
Ett normalfall är att först försöka med en vanlig kill (SIGTERM) och ge processen åtminstone några sekunder att avsluta sig på rätt sätt. Om den fortsatt vägrar dö eller hänger sig, kan man följa upp med kill -9 för att garantera att den försvinner. SIGKILL kan som sagt inte ignoreras av processen[5].
Kommandot kill kan även skicka andra signaler. Till exempel kan man skicka SIGHUP (1) för att instruera en process att starta om eller läsa om konfiguration:
# Skicka SIGHUP (1) till process 5678, ofta för att få en daemon att läsa om sin config kill -1 5678 # -1 motsvarar SIGHUP kill -HUP 5678 # detta är likvärdigt med -1
På liknande sätt kan kill -STOP användas för att pausa en process och kill -CONT för att fortsätta en pausad process. Om du är osäker på signalnamnet eller numret kan du skriva:
# Lista alla signals namn och nummer kill -l
Detta listar alla signaler som systemet känner till (t.ex. får du reda på att 15 = TERM, 9 = KILL, 1 = HUP, etc.).
Tips: kill är inbyggt i många shell (som Bash). Oftast räcker det att ange PID, men var försiktig så att du inte råkar ange fel PID. Det är alltid en bra idé att dubbelkolla med exempelvis ps eller pgrep att du har rätt process. Som vanlig användare kan du bara skicka signaler till processer du äger (startat själv), medan root-användaren kan signalera alla processer.
Kommandot killall – döda processer utifrån namn
Med killall kan du skicka en signal till samtliga processer som matchar ett givet kommando-namn. Till skillnad från kill behöver du alltså inte känna till PID; istället anger du namnet på processen/programmet. Som standard skickar killall också SIGTERM om ingen annan signal anges[6].
Syntax: killall [flaggor] [signal] namn…
Ett enkelt exempel:
# Försöker stänga alla processer som heter ”firefox” med SIGTERM killall firefox
Ovanstående kommando försöker avsluta alla körande Firefox-processer (t.ex. om flera webbläsarfönster är öppna) genom att skicka SIGTERM till dem. Om de inte stänger sig ordentligt kan man tvinga dem:
# Döda alla ”firefox”-processer med SIGKILL (9) killall -9 firefox
Flaggan -9 fungerar här likadant som för kill. Man kan även specificera signalnamn, till exempel killall -KILL firefox gör samma sak. Under huven skickar killall signalen till alla processer med det angivna namnet[6].
Det är viktigt att ange processen vid exakt namn. killall matchar som default hela kommandonamnet. Till exempel, killall vi dödar processer vars namn är precis ”vi”, men inte ”vim”. Man kan använda flaggan -I för att ignorera skillnad mellan versaler/gemener vid namnmatchning, eller -r för att tolka namnet som ett regular expression (regex) om man vill ha mer flexibel matchning[7]. Exempelvis skulle killall -r -9 ^firefox med regex döda alla processer vars namn börjar med ”firefox”.
Några andra praktiska flaggor för killall är: – -i (interactive) – frågar om bekräftelse före varje enskild process som ska dödas. Bra för säkerhets skull om man är osäker. – -v (verbose) – skriver ut information om huruvida signalen lyckades skickas till var och en. – -u användare – begränsa till processer som ägs av en viss användare. T.ex. killall -u alice firefox skulle bara försöka döda Alice instanser av firefox.
Varning: killall på Linux är harmlöst om du anger ett specifikt processnamn, men se upp så att du inte misstar det för det helt annorlunda kommandot killall på vissa Unix-system (som Solaris) där killall utan argument faktiskt försöker döda alla processer. På Linux är killall en del av psmisc-paketet och fungerar enligt ovan. Ange alltid explicit ett processnamn när du använder detta kommando.
Kommandot pkill – skicka signal utifrån sökmönster
pkill liknar killall genom att det låter dig avsluta processer baserat på namn, men det är mer flexibelt. Namnet pkill står för ”process kill” och är kopplat till kommandot pgrep (process grep). I själva verket är pkill en variant av pgrep som istället för att lista processer skickar en signal till dem som matchar kriteriet[8]. pkill använder sig av mönstermatchning (standardmässigt regular expressions) på processernas namn eller andra attribut.
Syntax: pkill [flaggor] [signal] mönster
Om ingen signal anges så skickar pkill som vanligt SIGTERM (15)[9]. Mönstret kan vara en del av processens namn. Exempel:
# Försök avsluta alla processer vars namn innehåller ”chrome” pkill chrome
Ovan kommando skulle skicka SIGTERM till alla processer som matchar regex-mönstret ”chrome” i sitt namn (så det träffar t.ex. både chrome och chromium om de körs). Vill man vara specifik att namnet ska matcha exakt, kan man använda flaggan -x (exact match). Alternativt kan man skriva regex med ^ och $ för att ange början/slut på namnet:
# Avsluta alla processer som heter exakt ”ssh” (inte bara innehåller ”ssh”) pkill -x ssh
Man kan på liknande sätt som med killall använda -9 eller -KILL för att skicka SIGKILL:
# Tvinga bort alla processer vars namn matchar ”chrome” pkill -9 chrome
Ett praktiskt användningsområde är att skicka andra signaler. Till exempel för att be en tjänst ladda om sin konfiguration (vilket ofta görs med SIGHUP) kan du göra:
# Ladda om Nginx konfiguration genom att skicka SIGHUP (1) till alla ”nginx”-processer pkill -HUP nginx
Detta utnyttjar att många tjänster (inklusive Nginx) tolkar SIGHUP som signal att läsa om config[10][11].
pkill har flera användbara flaggor för att begränsa vilka processer som träffas: – -f – matcha mot hela kommandoraden istället för bara basnamnet. T.ex. pkill -f ”python myscript.py” skulle matcha kommandoraden som innehåller texten python myscript.py (användbart om processen har ett generiskt namn men unika argument). – -u användare – matcha bara processer som körs av en viss användare (eller lista av användare). T.ex. pkill -u bob ssh dödar ssh-processer som körs av användaren bob. – -n / -o – matcha endast den nyaste respektive äldsta processen som uppfyller mönstret. Detta är bra om man t.ex. vill döda den senast startade instansen av något. – -c – (i vissa varianter) visa antal träffade processer istället för att döda (eller används i pgrep specifikt – se man pkill/pgrep).
En viktig sak med pkill är att det är lätt att matcha bredare än avsett om man inte är försiktig med mönstret. Till exempel kan pkill ssh även döda en process som heter ssh-agent eftersom ”ssh” ingår i namnet. Därför är ett gott råd att först testa mönstret med pgrep (som bara listar träffar) innan man kör pkill. Exempel:
pgrep -l chrome # listar PIDs och namn för processer som matchar ”chrome”
Om utdata ser rimlig ut så kan man sedan byta ut pgrep mot pkill med samma mönster för att faktiskt skicka signalen.
Kommandot pgrep – hitta processer utifrån namn eller villkor
Som nämnt är pgrep syskonverktyget till pkill. Istället för att skicka signaler listar pgrep helt enkelt ut process-ID för processer vars namn eller andra attribut matchar ett mönster. Formatet liknar pkill:
Syntax: pgrep [flaggor] mönster
Standardbeteendet är att matcha processnamn (kommandots namn) mot ett angivet mönster (som tolkas som regex). pgrep skriver ut matchande PIDs, ett per rad. Några exempel:
# Hitta PID för alla processer vars namn innehåller ”ssh” pgrep ssh
# Hitta PID för processen som heter exakt ”gnome-shell” pgrep -x gnome-shell
# Hitta alla processer som körs av användaren alice och innehåller ”python” i namnet pgrep -u alice python
I det sista exemplet kombineras -u alice för att filtrera på ägare och mönstret ”python” för att filtrera på namn. pgrep har i stort sett samma filterflaggor som pkill (som -f, -x, -n, -o, -u etc.), så man kan göra avancerade sökningar. En användbar flagga är -l (lågt L) som gör att pgrep listar inte bara PID utan även processens namn:
pgrep -l ssh
Det kan ge utdata som:
1039 sshd 2257 ssh-agent 6850 ssh 31279 ssh-agent
Då ser man både PID och vilket program det är. Om man vill ha hela kommandoraden kan man använda -a i stället för -l.
pgrep är således mycket smidigare än att köra t.ex. ps aux | grep namn och manuellt leta PIDs. När man väl fått en PID via pgrep kan man sedan använda kill på den, eller direkt använda pkill som vi gjorde ovan för att slippa steget att manuellt läsa av PID.
Kommandot fuser – hitta (och döda) processer som använder en resurs
fuser är ett verktyg som skiljer sig lite från de övriga: det är inte en renodlad ”kill”-kommandon utan används för att identifiera vilka processer som använder en viss resurs. En resurs i detta sammanhang kan vara en fil, en mapp, eller en nätverksport/socket. Namnet fuser kommer av ”file user”, dvs vilka processer som använder en fil.
Ett klassiskt problem är ”varför kan jag inte montera/avmontera den här disken?” eller ”vilken process kör på port 8080?”. fuser hjälper dig att svara på det, och kan även ta steget att döda de processer som blockerar en resurs.
Syntax: fuser [flaggor] [resurs]
Några vanliga användningsfall:
# Ta reda på vilken process som använder filen /var/log/syslog fuser /var/log/syslog
# Lista vilken process som lyssnar på TCP-port 80 (HTTP) fuser 80/tcp
# Visa mer detaljer (ägare, access-typ etc.) för processer som kör på port 80 fuser -v 80/tcp
När man kör fuser på en fil eller port returnerar den normalt vilka PID:er som använder resursen. Flaggan -v (verbose) ger en tabell som visar PID, användare, och hur de använder resursen (t.ex. F för öppnad fil, e för exe-körning, tcp för nätverkstjänst etc.)[12][13].
En mycket praktisk funktion är att kunna döda alla processer som använder en viss resurs. Detta görs med flaggan -k (kill). Exempel:
# Döda processen som använder TCP-port 8443 sudo fuser -k 8443/tcp
Här letar fuser upp vilken process som lyssnar på port 8443 och skickar SIGKILL till den[14]. Som standard skickar fuser -k nämligen SIGKILL till processerna[15]. Om man istället vill försöka avsluta dem mjukare kan man specificera signal, t.ex. fuser -k -TERM 8443/tcp för att skicka SIGTERM (15)[16][17]. Generellt kan man lägga till -[SIGNAL] efter -k för valfri signal.
VARNING: Använd fuser -k med omsorg. Om du anger en vanlig fil som resurs kommer bara processen som har just den filen öppen att dödas, men om du anger en hel mapp eller en monteringspunkt (t.ex. ett helt filsystem) så kommer alla processer som använder något i den mappen att dödas[18]. Till exempel fuser -k /home kan i värsta fall döda en mängd processer (eftersom många program sannolikt har något öppet under /home). Var därför specifik med resursen och använd gärna -i (interactive) flaggan tillsammans med -k för att be om bekräftelse för varje träff innan den dödas[18]. Exempel:
# Interaktivt (-i) döda alla processer som använder aktuell mapp (.) fuser -ki .
Ovan skulle lista alla processer som kör något i nuvarande katalog, och fråga y/n innan varje dödas.
Slutligen, fuser -l visar en lista över alla signalnamn som kommandot känner till, liknande kill -l. fuser är ett kraftfullt verktyg när man till exempel felsöker ”resource busy” felmeddelanden – man kan snabbt hitta vilken process som blockerar en fil eller port och avsluta den för att komma vidare.
Kommandot skill – (föråldrat) skicka signaler baserat på användare/terminal
Kommandot skill har snarlikt namn som kill, men är ett separat verktyg som låter dig skicka signaler till processer baserat på kriterier som användarnamn, terminal eller kommandonamn. Det kan ses som en föregångare till moderna verktyg som pkill och killall. I dagens Linux-system betraktas skill som föråldrat (obsolete) och ostandardiserat – dokumentationen själv rekommenderar att man använder killall, pkill och pgrep istället[19]. Vi tar ändå upp det här för fullständighetens skull.
Syntax: skill [signal] [val för urval]
Till skillnad från killall/pkill som använder argument och flaggor för att matcha processer, så använder skill en mer fri form där man exempelvis kan ange en användare eller en terminal direkt. För att eliminera tvetydighet finns dock flaggor: – -u användare för att matcha alla processer körda av en given användare. – -t tty för att matcha en viss terminal (TTY/PTY) där processerna körs. – -p pid för att matcha ett specifikt process-ID. – -c namn för att matcha ett kommandonamn.
Standard-signalen för skill är SIGTERM (precis som kill)[20]. Du kan lista tillgängliga signalnamn med skill -l (eller -L för en tabell). Signal anges antingen med t.ex. -SIGKILL eller kortare -KILL eller med nummer -9.
Några exempel på vad man kan göra med skill:
# Döda (SIGKILL) alla processer som körs av användaren ”bob” sudo skill -KILL -u bob
Detta liknar att köra killall -u bob eller pkill -9 -u bob – alla Bobs processer avslutas[21]. Ett annat exempel:
# Stoppa (pausa med SIGSTOP) alla processer som körs på terminal /dev/pts/3 skill -STOP -t pts/3
Om en användare har en viss terminal öppen (t.ex. pts/3 över SSH) skulle ovan kommando frysa alla den användarens processer i just den terminalen. Man kan även ange flera kriterier:
# Exempel från man-sidan: stoppa alla processer för tre olika användare skill -STOP -u alice -u bob -u charlie
Och på motsvarande sätt kan man döda alla processer på alla pseudoterminaler (PTY):
# Exempel: logga ut alla användare på pts-terminaler med tvång sudo skill -KILL -v /dev/pts/*
Här används -v för verbose så att varje träff rapporteras. Detta kommando skulle skicka SIGKILL till samtliga processer som är kopplade till någon pts-terminal (praktiskt taget logga ut alla interaktiva sessions) – använd med extrem försiktighet!
Sammanfattningsvis är skill kraftfull men inte så vanligt förekommande längre. Samma sak kan oftast göras med pkill/killall som är mer portabla mellan system. Om du stöter på skill i dokumentation eller scripts vet du nu att det är ett verktyg för att signalera processer med liknande funktion som killall/pkill, men i moderna Linux-distributioner kan du själv välja att använda de senare för klarhetens skull[19].
ps visar en ögonblicksbild av aktiva processer. Det används för att hitta PID:er och förstå vad som körs.
Exempel: ps – Terminalens egna processer ps aux – Alla processer i BSD-format ps -ef – Alla processer i System V-format ps -eo pid,ppid,user,%cpu,%mem,stat,etime,cmd | head ps -C sshd -o pid,ppid,cmd ps -ef –forest | less
Några viktiga kolumner:
PID – process-ID
PPID – föräldraprocessens ID
STAT – status (R=running, S=sleeping, T=stopped, Z=zombie)
Interaktiva verktyg för att se processer i realtid.
Exempel: top htop
Tips i top:
M → sortera på minne
P → sortera på CPU
k → döda en process (ange PID och signal)
Avslutande tips
Att hantera processer i Linux-terminalen innebär i stort sett att man skickar rätt signal till rätt process(er). Börja alltid ”snällt” med SIGTERM eller SIGHUP om syftet är att låta processen städa upp och avsluta sig självmant. Om inte det hjälper, eskalera till SIGKILL för att tvinga fram en avslutning. Lär dig känna igen de vanligaste signalnamnen och deras nummer. Använd verktyg som pgrep för att dubbelkolla vilka processer som kommer att påverkas innan du använder pkill eller killall. Och slutligen – var försiktig med kommandon som mass-terminerar processer (killall, fuser -k, eller skill -KILL) särskilt som administratör, så att du inte råkar stänga ner mer än avsett.
Med dessa verktyg och koncept i bagaget har du en god grund för att felsöka och kontrollera processer i Linux via terminalen. Lycka till med din processhantering!
Exempel
Här är 10 praktiska exempel på hur du kan använda ps, pidof, pstree, lsof, top/htop, samt de tidigare genomgångna verktygen (kill, killall, pkill, pgrep, fuser, skill) på olika sätt:
Hitta en process som drar mest CPU
ps -eo pid,%cpu,%mem,cmd --sort=-%cpu | head
Visar de mest CPU-intensiva processerna.
Avsluta ett specifikt program via PID
kill -9 4321
Tvingar bort processen med PID 4321 (t.ex. en låst applikation).
Hitta och avsluta alla Firefox-processer
killall firefox
Avslutar alla processer som heter ”firefox”.
Avsluta processer baserat på mönster i kommandoraden
pkill -f "python myscript.py"
Stänger processen som kör ett Python-skript med namnet myscript.py.
Lista alla PIDs för processer som heter ssh
pgrep -l ssh
Visar både PID och namn på alla ssh-relaterade processer.
Hitta vilken process som lyssnar på port 8080
sudo lsof -i :8080
Visar vilket program som kör på port 8080 (ofta webbserver eller testserver).
Avsluta processen som håller port 8080
sudo fuser -k 8080/tcp
Dödar processen som blockerar porten.
Visa processhierarkin som träd
pstree -p
Visar processer och deras PID i ett trädformat – bra för att förstå föräldra-/barnrelationer.
Se vad som händer i realtid
top
Startar realtidsövervakning av processer. Du kan trycka k för att döda en process direkt från top.
När vi startar datorn och skriver ls för att lista filer, eller cp för att kopiera något, tänker de flesta inte på det. Men bakom dessa små kommandon ligger en mjukvaruskatt med rötter tillbaka till 1970-talets Unix. Den heter GNU coreutils, och nu har den fått en ny stor uppdatering – version 9.8.
En osynlig ryggrad i datorvärlden
Coreutils är ett paket med de mest grundläggande verktygen i Linux och andra Unixliknande system. Det är program som hjälper oss att läsa textfiler, räkna ord, jämföra innehåll, sortera, hålla reda på datum eller visa hur många processorer datorn har. I princip varje gång du öppnar terminalen är det coreutils som gör jobbet i bakgrunden.
Och nu – över 40 år efter att de första varianterna såg dagens ljus – fortsätter utvecklingen.
Nya språk för säkerhet och enkelhet
I den nya versionen är det särskilt två förbättringar som sticker ut. För det första kan verktyget cksum nu använda den moderna SHA3-algoritmen för att skapa säkra kontrollsummor. Kontrollsummor används för att försäkra sig om att en fil är intakt och inte manipulerad, och SHA3 är det senaste inom kryptografisk standardisering.
För det andra får kodningsverktyget basenc stöd för Base58 – en metod att representera data utan de tecken som ofta misstas för varandra, som nollan och bokstaven O. Perfekt i en tid då vi allt oftare scannar QR-koder och hanterar kryptovalutaadresser.
Smartare hantering av dagens datorer
Dagens datorer ser annorlunda ut än på 80-talet, och coreutils hänger med. Kommandot nproc, som visar hur många processorer som finns att tillgå, tar nu hänsyn till cgroup v2 – en teknik som används i moderna Linuxsystem för att begränsa resurser i containrar. Det betyder att program i en container får en mer realistisk bild av vad de faktiskt får använda.
Även stty, som styr inställningar för terminalen, kan nu sätta godtyckliga överföringshastigheter på vissa system. Och textverktyget fold har blivit medvetet om att världen består av fler tecken än bara ASCII – till exempel emojis och asiatiska tecken – och radbryter dem på rätt sätt.
Fixar under huven
Det kanske inte märks direkt för vanliga användare, men version 9.8 rättar också till en lång rad buggar. Till exempel fungerar nu cp --sparse=always bättre när det gäller att spara diskutrymme, tail riskerar inte längre att skriva ut extra rader i vissa situationer, och od (ett program för att visa filer i olika nummerformat) har blivit stabilare.
För den som arbetar med stora tal har verktyget factor fått en rejäl hastighetsökning, och seq, som används för att generera talföljder, hanterar nu mycket stora startvärden med högre precision.
Ett internationellt samarbete
Bakom kulisserna är coreutils ett samarbete mellan utvecklare världen över. Den senaste versionen bygger på 348 kodändringar från åtta olika personer, varav veteranerna Paul Eggert och Padraig Brady står för merparten. Det visar att även de mest grundläggande programmen i datorvärlden behöver ständig omvårdnad – och att arbetet ofta sker i det tysta.
Fortsatt relevant
Att ett verktygspaket som skapades i Unix miljö på 1970-talet fortfarande utvecklas aktivt år 2025 är i sig en historia. Det påminner oss om att digital infrastruktur inte alltid handlar om de mest uppmärksammade apparna eller sociala nätverken. Ofta är det små, diskreta verktyg – kommandon på några få bokstäver – som får hela det moderna IT-samhället att fungera.
Google Chrome är världens mest använda webbläsare – snabb, kraftfull och med ett stort ekosystem av tillägg. För Debian 13-användare kan installationen verka lite krånglig vid första anblick, men lugn – det är enklare än du tror.
Google Chrome är i dag världens mest använda webbläsare. Trots att Linuxvärlden är full av alternativ som Firefox, Vivaldi och Brave, väljer många användare att hålla fast vid Chrome – av vana, kompatibilitet eller helt enkelt för att det är bekvämt.
För dig som kör Debian 13 “Trixie” finns det två enkla vägar till en fungerande Chrome-installation. Antingen laddar du ner paketet direkt från Google, eller så kopplar du in Googles eget programförråd och låter systemet sköta uppdateringarna automatiskt.
Metod 1: Den snabba vägen med DEB-filen
Det här är den klassiska ”ladda ner och klicka-installera”-lösningen som passar bra för nya Linuxanvändare.
Nu finns Chrome i programmenyn. Du kan även starta det direkt från terminalen:
google-chrome
Metod 2: Den långsiktiga lösningen med Googles förråd
För den som vill ha det lite mer robust – och slippa tänka på manuella uppdateringar – är Googles officiella förråd rätt väg att gå. När det väl är på plats får Chrome nya versioner tillsammans med systemets vanliga säkerhetsuppdateringar.
Updo är ett lättviktigt kommandoradsverktyg som övervakar upptid och prestanda på dina webbplatser i realtid – utan dyra abonnemang eller tunga dashboards. Installera på några minuter, mät svarstider och SSL, testa från flera regioner och få larm direkt i Slack eller via webhooks. Perfekt för allt från personliga bloggar till produktions-API:er.
Att hålla koll på om ens sajter är uppe är lite som att spana efter ubåtar – plötsligt kan ryssen dyka upp på överraskningsbesök, antingen som U137 eller som ett intrång på din hemsida.
Håll koll på upptid och prestanda utan krångel
En webbplats som är långsam eller otillgänglig kan snabbt leda till tappat förtroende, färre besökare och till och med förlorade intäkter. Därför är det viktigt att hålla ett öga på både upptid och prestanda.
Updo är ett öppen källkod-verktyg som låter dig övervaka upptid och prestanda direkt från kommandoraden. Det är enkelt, snabbt och helt gratis. Till skillnad från många andra lösningar behöver du inte betala för ett konto eller logga in i krångliga dashboards – allt sköts lokalt på din dator.
Vad är Updo?
Updo är ett lättviktigt CLI-verktyg som ger dig en tydlig bild av hur din webbplats mår. Med det kan du:
Mäta upptid och svarstider
Se eventuella felkoder
Få varning innan SSL-certifikat löper ut
Testa prestanda från olika platser i världen
Få notifieringar via Slack, Discord eller egna webhooks
För mer avancerad analys kan Updo dessutom integreras med Prometheus och Grafana, så att du kan följa trender och sätta upp snygga dashboards.
Updo är byggt i Go och fungerar på Linux, macOS och Windows.
Varför använda Updo?
Det finns gott om verktyg och tjänster för upptidsövervakning, men många är antingen dyra, krångliga eller beroende av tredjepartsservrar. Updo är annorlunda:
Gratis och öppen källkod – inga abonnemang eller låsningar
Körs lokalt – full kontroll utan beroenden
Utvecklarvänligt – byggt för att fungera i skript, CI/CD-pipelines eller automatiska övervakningssystem
Kort sagt: det är ett flexibelt alternativ för dig som vill ha enkel övervakning utan onödigt krångel.
Viktiga funktioner
Realtid: Du ser direkt om sidan går ner, blir långsam eller har problem med SSL-certifikatet.
Flera mål: Övervaka många webbplatser samtidigt, med stöd för konfigurationsfiler.
Global täckning: Testa prestanda från 13 olika AWS-regioner.
Aviseringar: Få notiser via Slack, Discord, egna system eller direkt på skrivbordet.
Flexibla inställningar: Hantera headers, POST/PUT-förfrågningar, SSL och redirects utan problem.
Updo kan enkelt kopplas till Slack, Discord eller egna webhooks för att ge aviseringar i realtid. Notiserna innehåller detaljer om felet, svarstiden och vilken webbplats det gäller.
För långsiktig övervakning går det att exportera data till Prometheus och Grafana. Då kan du följa upptid över månader, jämföra globala svarstider och sätta upp egna larm.
En färdig Docker-exempelmiljö finns på projektets GitHub.
Slutsats
Updo är ett snabbt, smidigt och kraftfullt verktyg för dig som vill ha koll på dina webbplatser – utan dyra abonnemang eller komplexa plattformar.
Enkelt att installera
Lätt att använda
Tillräckligt flexibelt för avancerade behov
Vill du ha kontroll, transparens och trygghet – direkt i terminalen – är Updo ett verktyg som definitivt är värt att testa.
Den populära systemadministratörsdistributionen Grml är nu ute i en ny version, 2025.08, och släpps lagom till att Debian fyller 32 år.
Bygger på Debian 13 och Linux 6.12 LTS Den nya versionen bygger på Debian 13 ”Trixie” och körs med den långtidssupportade Linux 6.12 LTS-kärnan, vilket innebär både modernare hårdvarustöd och nyare programvara än tidigare. Dessutom har man rättat till flera kända buggar från föregående utgåvor.
Förbättrad språkhantering och enklare utveckling Bland nyheterna märks en ny signeringsnyckel för Grml:s egna programförråd, förbättrad språkhantering både vid uppstart och i verktyget grml-lang, samt att flera tidigare fristående paket nu slagits ihop för att förenkla utvecklingen.
Nytt i byggsystemet grml-live Även grml-live, systemet som används för att bygga Grml-avbilder, har fått en rejäl uppdatering. Det stöder nu bland annat byggande av testversioner baserade på ”Debian Forky”, tangentbordsstöd för fler språk, nya funktioner för att hoppa över paket, samt stöd för så kallade reproducerbara ISO-filer – något som ökar transparensen och säkerheten.
Tux och en svensk tiger raderar hårddiskar, så att inte lede fi kan se innehållet.
Tidigare denna månad presenterade vi ett inlägg om hur man återbrukar en uttjänt dator och förvandlar den till en dedikerad diskförstörare med webbgränssnitt. Artikeln beskrev en lösning där en gammal maskin utrustas med ett skriptbaserat webbgränssnitt för att hantera radering av hårddiskar lokalt och fjärrstyrt. För mer information om hur systemet byggs upp – se den ursprungliga artikeln.
Bakgrund och syfte
Under många år har jag samlat på mig ett stort antal hårddiskar, främst mekaniska (HDD), både egna och från andra. Av integritetsskäl har jag aldrig vågat lämna dem till återvinning utan att först säkerställa att datainnehållet är oåterkalleligt raderat. Många av diskarna innehåller potentiellt känslig information, och eftersom jag åtagit mig ansvaret att hantera även andras lagringsmedia professionellt, är datadestruktion med hög säkerhet ett absolut krav.
Erfarenheter från drift
Under de senaste veckorna har jag använt det webbaserade diskförstörare-systemet i praktiken. Det har fungerat stabilt och är användarvänligt, med tydlig återkoppling via gränssnittet. En stor fördel är att raderingsförloppet kan övervakas i realtid via webbläsaren, vilket gör det enklare att logga förlopp, bekräfta färdigställd radering och felsöka vid behov.
Identifierade begränsningar
Den nuvarande implementationen i webbappen har dock en begränsning: den hanterar endast en hårddisk åt gången. I situationer där man vill sanera flera diskar parallellt – t.ex. i en batchprocess – är detta en flaskhals. Om man istället kör raderingen via terminal (SSH) och använder shred direkt mot flera enheter i bakgrunden (t.ex. via screen eller tmux), kan man utnyttja maskinens resurser bättre och köra flera shred-processer samtidigt.
Här raderas tre diskar parallellt med 3 överskrivningar och nollfyllning på slutet.
Slutsats och nästa steg
Trots begränsningen med sekventiell radering fungerar webbappen som ett robust och lättanvänt gränssnitt för manuell diskhantering. I nästa iteration planeras stöd för köhantering av flera diskar och eventuell integration med udev-regler för automatisk identifiering av nya enheter. Även loggning och export av raderingsrapporter i text- eller JSON-format övervägs.
MX Linux är en lättviktig och användarvänlig Linux-distribution baserad på Debian. Den har snabbt blivit populär på grund av sin stabilitet, enkelhet och kraftfulla funktioner. Distributionen riktar sig både till nybörjare och erfarna användare som söker en pålitlig plattform för dagligt bruk. Med en välbalanserad blandning av moderna funktioner och stabila programvarupaket är MX Linux ett av de mest omtyckta Linux-alternativen.
Ny version av MX Linux – 23.4 ”Libretto”
Den fjärde uppdateringen av MX Linux 23 ”Libretto” har nu släppts, och denna version är baserad på Debian GNU/Linux 12.7 ”Bookworm”. MX Linux 23.4 fortsätter att bygga vidare på sin stabila grund och introducerar ett antal viktiga förbättringar, både under huven och i användarupplevelsen. För användare som redan har MX Linux installerat, erbjuder den nya versionen ett enklare sätt att uppdatera systemet utan att behöva ladda ner hela ISO-filen.
Baserad på Debian 12.7 och Linux-kärna 6.10
Den nya MX Linux-versionen använder nu Debian GNU/Linux 12.7 som bas, vilket innebär att de flesta programvarupaket har uppdaterats till nyare versioner. Den långsiktiga stödkärnan (LTS) Linux 6.1 finns fortfarande kvar för de flesta användare, men för dem som har moderna eller problematiska hårdvarukonfigurationer erbjuder MX Linux 23.4 en Advanced Hardware Support (AHS)-version med den nyare Linux 6.10.10-kärnan. Denna kärna, tillgänglig i Liquorix-variant, är designad för att förbättra systemets responsivitet och ge bättre prestanda.
Viktiga uppdateringar och förbättringar
Förutom den nya kärnan, introducerar MX Linux 23.4 ett antal förbättringar. Xfce 4.18-paketen har uppdaterats för en bättre skrivbordsmiljö, och Fluxbox-utgåvan inkluderar nu ett schemaläggningsverktyg för cron installerat som standard. En ny funktion för att visa en ikon i systemfältet när en USB-enhet sätts i har också lagts till i verktyget MX-USB-Unmounter. Dessutom har LUKS2-kryptering blivit standard för MX-Live-USB-Maker, vilket ger ett säkrare sätt att skapa live USB-enheter.
Förbättrat paketverktyg och KDE-stöd
MX Packageinstaller har uppdaterats för att ge användarna en bättre översikt över installerade paket, och nu finns stöd för att visa program i flikarna Aktiverade, Test och Backports. En användbar funktion har lagts till för att filtrera Flatpak-appar från Flathub, vilket gör det lättare att hitta verifierade applikationer.
För användare av KDE-utgåvan introduceras ett uppdaterat pipewire-setup-mx-verktyg, som gör PipeWire och WirePlumber-start mer tillförlitlig. Dessutom har MX Tweak-verktyget en ny funktion för att aktivera eller inaktivera Plasma Discover’s autostart av systemfältets uppdateringsnotifierare, vilket ger användarna mer kontroll över systemets beteende.
Raspberry Pi-stöd
För dem som använder MX Linux på Raspberry Pi har även denna utgåva fått förbättringar. De senaste paketen från både MX Linux och Raspberry Pi OS-förråden har inkluderats, vilket gör Raspberry Pi-versionen ännu mer robust och funktionell.
Uppgradering för befintliga användare
Användare som redan kör MX Linux 23 ”Libretto” behöver inte ladda ner hela den nya ISO-versionen. Istället kan de enkelt uppdatera sina system genom att köra kommandot sudo apt update && sudo apt full-upgrade i terminalen, eller genom att använda ett grafiskt verktyg som Synaptic Package Manager.
Med dessa nya förbättringar fortsätter MX Linux att vara en stabil och kraftfull Linux-distribution för både nybörjare och avancerade användare.
Vi kommer hem till dig i Stockholm området och hjälper dig med dator, skrivare, kablar, TV, nätverk och annat tekniskt.
Vi arbetar med Linux, Windows och Mac.
Discover the power of Dia, a 1.6B parameter text-to-speech model for Linux. Explore its features and enhance your machine learning projects today. The post Machine Learning in Linux: Dia – 1.6B Parameter Text to Speech Model appeared first on Linux Today.
Discover how SUSE engineers have integrated U-Boot support for the Raspberry Pi 5, enhancing its capabilities and performance for developers and enthusiasts alike. The post Raspberry Pi 5 Gets U-Boot Support from SUSE Engineers appeared first on Linux Today.
Learn how to set up a WireGuard VPN server with WireGuard-UI on Ubuntu. Follow our step-by-step guide for secure and efficient remote access. The post How to Setup WireGuard VPN Server with WireGuard-UI on Ubuntu appeared first on Linux Today.
Manage your NTFS partitions seamlessly with Linux NTFS Manager. Enjoy easy access, file transfers, and enhanced compatibility for your Linux system. The post Linux NTFS Manager appeared first on Linux Today.
Discover how the Debian version of APT is evolving to depend on Rust, enhancing performance and security for package management. Learn more today! The post Debian Version of APT to Depends on Rust appeared first on Linux Today.
Discover how Linux has reached a significant 3% usage on Valve's Steam platform, marking a milestone for gaming on open-source systems. The post Linux Hits 3% Usage on Valve’s Steam Gaming Platform appeared first on Linux Today.
Discover the features of Devuan 6 "Excalibur," built on the Debian 13 "Trixie" base. Explore its enhancements and improvements for a seamless experience. The post Devuan 6 “Excalibur” Released with Debian 13 “Trixie” Base appeared first on Linux Today.
Discover Heisenberg, the open-source tool designed to assess and enhance your software supply chain's health. Ensure security and efficiency today. The post Heisenberg: Open-source Software Supply Chain Health Check Tool appeared first on Linux Today.
Discover the new features of Incus 6.18, the latest Container & Virtual Machine Manager. Enhance your virtualization experience with improved performance and usability. The post Incus 6.18 Container & Virtual Machine Manager Released appeared first on Linux Today.
Discover 15 powerful free and open source DNS clients that enhance your internet experience. Explore features, benefits, and installation tips today! The post 15 Useful Free and Open Source DNS Clients appeared first on Linux Today.
KDE Frameworks 6.20 open-source software suite is out now with various improvements and bug fixes for KDE apps and the Plasma desktop. Here’s what’s new! The post KDE Frameworks 6.20 Adds a Fancier Push/Pop Animation to System Settings Pages appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is […]
Proton 10 is now available with support for Mary Skelter: Nightmares, Fairy Fencer F Advent Dark Force, Far Horizon, and many other Windows games. The post Proton 10 Released with Support for Far Horizon, The Riftbreaker, and Other Games appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is […]
openSUSE Tumbleweed distribution switches from GRUB2 to GRUB2-BLS as default bootloader when installed via YaST. The post openSUSE Tumbleweed Now Defaults to GRUB2-BLS Bootloader for New UEFI Installs appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.
Tails 7.2 anonymous Linux OS is now available for download with Tor Browser 15.0.1, Mozilla Thunderbird 140.4, and Linux kernel 6.12.57 LTS. The post Debian-Based Tails 7.2 Released with Tor Browser 15 Anonymous Web Browser appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, not […]
LibreOffice 25.8.3 is now available for download as the third maintenance update to the latest LibreOffice 25.8 office suite series with 70 bug fixes. The post LibreOffice 25.8.3 Office Suite Is Now Available for Download with 70 Bug Fixes appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is […]
Mozilla Thunderbird 145 open-source email client is now available for download with support for DNS over HTTPS and other changes. Here's what's new! The post Thunderbird 145 Enables Support for DNS over HTTPS, Drops 32-Bit Linux Binaries appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for […]
Valve announces Steam Machines, Steam Controller, and Steam Frame VR headset products, scheduled for 2026. Here's a first look! The post Valve Announces Steam Machines, Steam Controller, and Steam Frame VR Headset appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.
Nitrux 5.0 distribution is now available for download with Linux kernel 6.17 and full Hyprland desktop environment. Here's what else is new! The post Systemd-Free Nitrux 5.0 Officially Released with Hyprland Desktop, Linux 6.17 appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.
qBittorrent 5.1.3 open-source BitTorrent client is now available for download with various bug fixes and improvements. Here’s what’s changed! The post qBittorrent 5.1.3 Adds Native Wayland Support to the AppImage, Fixes More Bugs appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.
Firefox 146 open-source web browser is now available for public beta testing with various new features and improvements. Here’s what to expect! The post Firefox 146 Is Now Available for Public Beta Testing, Here’s What to Expect appeared first on 9to5Linux – do not reproduce this article without permission. This RSS feed is intended for […]
Here’s a quick rundown of the 10 quick tips after you finish installing a brand new Fedora 43 workstation edition. In this article, we will talk about a few post-install tips for Fedora 43 workstation edition. These are a good starting point if you are installing a fresh Fedora 43 workstation edition for all user… […]
Here’s are the quick steps on how you can upgrade to the Fedora 43 version. Fedora 43 is officially available for download and the upgrade channels are now available. This release brings the latest and greatest GNOME 49 desktop for workstation editions, refinements to KDE Plasma desktop and more updates. You can read our full… […]
We outline the list of new features of Xubuntu 25.10 release and additional updates for this version. Xubuntu 25.10: Core New Features Kernel and core updates Xubutnu 25.10 is based on the Ubuntu 25.10 Questing Quokka release. It is powered by Linux Kernel 6.17. This Kernel offers latest hardware and software updates. Linux kernel 6.17… […]
We round up the best new features of the Ubuntu 25.10 (“Questing Quokka”) release. Ubuntu 25.10, released on October 9, 2025 (supported until July 2026 for 9 months), is the final interim release before the next long term version of Ubuntu 26.04 LTS. This release prioritizes modernization through Rust-based components for improved security and new… […]
We round up the best new feature set of Fedora 43 workstation release (upcoming). Fedora 43 release is packed with enhancements and core updates. The release is currently going thru beta phase and the release is expected within few days. This page highlights key system-wide and self-contained changes that make Fedora 43 a release to… […]
Here’s a quick rundown of the best new features of the latest GNOME 49 desktop environment. GNOME 49, code named “Brescia” is released a while back on September 19, 2025. This release mostly focusses on the software stack updates, concentrated on the native applications and core updates. While it is not that of a fancy… […]
Here are the steps you need to upgrade your Fedora 41 workstation edition to Fedora 42. Fedora 42 is officially available for download and the upgrade channels are now available. This release brings the latest and greatest GNOME 48 desktop for workstation editions, refinements to KDE Plasma desktop, new Cosmic Spin and more. You may… […]
Here’s how you can upgrade to Debian 13 “Trixie” from Debian 12 “Bookworm”. Debian 13 “Trixie” is released on August 9, 2025 with many new features and updates. If you are running Debian 12 “bookworm”, you can plan to upgrade your desktop or server now. However, it is recommended that you wait until the first… […]
Here’s a quick tutorial on how you can connect your Ubuntu or Fedora Linux from macOS. Accessing your Linux machine (like Ubuntu or Fedora) from a Mac can be incredibly useful for development, server management, or just seamless productivity. While tools like SSH or VNC exist, using Remote Desktop Protocol (RDP) provides a full graphical… […]
A roundup of the key features of the latest Debian 13 release. After almost two years of development, Debian 13 “Trixie” is now available to download and upgrade from Debian 12. This critical release brings few major updates including latest packages across modules, Linux Kernel 6.12 LTS, modern desktop environments and more. Trixie will be… […]
Rspamd 3.14 markerar ett stort steg framåt för öppna spamfilter. Den nya versionen bjuder på mörkt läge i webbgränssnittet, snabbare fuzzy-hashning och en smartare Postfix-guide som förenklar e-postintegration. Under huven finns även ett nytt HTML-baserat analysverktyg som kan upptäcka strukturella likheter mellan skräppostmeddelanden – ett genombrott som gör det ännu svårare för spammare att smita…
Den populära GPU-accelererade terminalemulatorn Kitty har fått en ny version – 0.44 – som bjuder på både prestandaförbättringar och stöd för den senaste textstandarden Unicode 17. Uppdateringen fokuserar tydligt på stabilitet och användarupplevelse, särskilt för macOS- och Wayland-användare. Unicode 17 och bättre kontroll över miljövariabler Unicode 17-stödet innebär att Kitty nu kan visa de senaste…
Den som håller på med hemsidor, där är webappen wordpress den populäraste appen. Men även andra webappar som är skrivna i PHP kan behöva testas. Med egen testmiljö för LAMP kan man testa sina projekt. Har man till exempel en dator som inte klarar Windows 11, kan den bli en utmärkt NAS och testmiljö för…
Att förstå och hantera processer är en av de mest grundläggande färdigheterna i Linux. När du kör ett program – vare sig det är en webbläsare, ett terminalkommando eller en systemtjänst – skapas en process. Ibland behöver du som användare ta kontroll över dessa processer: kanske för att ett program har hängt sig, för att…
När vi startar datorn och skriver ls för att lista filer, eller cp för att kopiera något, tänker de flesta inte på det. Men bakom dessa små kommandon ligger en mjukvaruskatt med rötter tillbaka till 1970-talets Unix. Den heter GNU coreutils, och nu har den fått en ny stor uppdatering – version 9.8. En osynlig…
Google Chrome är världens mest använda webbläsare – snabb, kraftfull och med ett stort ekosystem av tillägg.För Debian 13-användare kan installationen verka lite krånglig vid första anblick, men lugn – det är enklare än du tror. Google Chrome är i dag världens mest använda webbläsare. Trots att Linuxvärlden är full av alternativ som Firefox, Vivaldi…
Updo är ett lättviktigt kommandoradsverktyg som övervakar upptid och prestanda på dina webbplatser i realtid – utan dyra abonnemang eller tunga dashboards. Installera på några minuter, mät svarstider och SSL, testa från flera regioner och få larm direkt i Slack eller via webhooks. Perfekt för allt från personliga bloggar till produktions-API:er. Håll koll på upptid…
Grml 2025.08 släppt – firar Debians 32-årsdag Den populära systemadministratörsdistributionen Grml är nu ute i en ny version, 2025.08, och släpps lagom till att Debian fyller 32 år. Bygger på Debian 13 och Linux 6.12 LTSDen nya versionen bygger på Debian 13 ”Trixie” och körs med den långtidssupportade Linux 6.12 LTS-kärnan, vilket innebär både modernare…
Tidigare denna månad presenterade vi ett inlägg om hur man återbrukar en uttjänt dator och förvandlar den till en dedikerad diskförstörare med webbgränssnitt. Artikeln beskrev en lösning där en gammal maskin utrustas med ett skriptbaserat webbgränssnitt för att hantera radering av hårddiskar lokalt och fjärrstyrt. För mer information om hur systemet byggs upp – se…
MX Linux är en lättviktig och användarvänlig Linux-distribution baserad på Debian. Den har snabbt blivit populär på grund av sin stabilitet, enkelhet och kraftfulla funktioner. Distributionen riktar sig både till nybörjare och erfarna användare som söker en pålitlig plattform för dagligt bruk. Med en välbalanserad blandning av moderna funktioner och stabila programvarupaket är MX Linux…