Feilsøking i Command Line: Tips for Linux Beginners

Linux har kommet langt i sitt korte liv, og det er mer pålitelig og stabil enn noensinne. Men ting fortsatt gå galt, og du kan diagnostisere og fikse det meste.

Stasjonære Freezes

Kompositte vindu ledere er et stort skritt fremover i å lage grafiske miljøer mer stabil. Men noen ganger din fint Linux grafisk skrivebords fortsatt låser opp, og så hva gjør du? Drop til en konsoll er hva du gjør det, ved å trykke Ctrl + Alt + F2 på tastaturet. Dette tar deg til en konsoll som er uavhengig av din grafiske miljøet. Gå videre og innlogging.


Nå kan du gjøre ting. Hvis du har en forestilling om hva låst opp skrivebordet ditt, kan du finne sin prosess nummer og drepe den. For eksempel når jeg er koblet til en ekstern nettverksressurs i min Dolphin grafisk filbehandler og nettverkstilkoblingen brytes, låser Dolphin opp hele skrivebordet mitt. Så jeg slippe til en konsoll og kjøre denne kommandoen for å finne sin prosess Nummer:

 $ ps aux | grep delfin Carla 9218? Sl 00:00 /usr /bin /dolphin --icon system-fil-manager -caption Dolphin 

Dette viser hvem som eier prosessen (Carla), som skal være i stand til å drepe den med kommandoen kill:
< pre> $ drepe 9218

Hvis root eller en annen bruker som eier prosessen, og deretter bruke sudo kill 9218.

Nå trykker du på pil opp på tastaturet for å bla tilbake til forrige kommando, trykke Enter /returnere nøkkelen til å kjøre den, og se om det fungerte. Hvis det ikke da rulle ut stor pistol.

 $ kill -9 9218 

-9 sender SIGKILL signal, som er den kjernefysiske alternativet fordi det ikke kan ignoreres

Hva om du ser en løpsk prosess som har gytt barn prosesser? Du må drepe den overordnede prosessen fordi det også tar ut barna, og det hindrer den fra å re-gyting noen underordnede prosesser som du dreper. (Hvis du ikke er komfortabel med denne terminologien, har du selskap fordi jeg ikke er komfortabel med det heller.) Legg bryteren -f å se ordnede og underordnede prosesser i et tre syn som dette forkortet eksempel for Plex media server :

 root 1 776 /bin /sh -e /proc /selvtillit /fd /9 Plex 1803 \\ _ /bin /sh /usr /sbin /start_pms Plex 1804 \\ _ ./Plex Media Server plex 1970 \\ _Plex Plug-in [com.plexapp.system] Plex 2645 \\ _ /usr /lib /plexmediaserver Plex 2690 \\ _ Plex Plug-in 

Så du kan bruke sudo kill 1 776 å utslette det hele fungerer.

På de fleste distroer er det 6 konsoller, tty1 å tty6. tty7 er vanligvis din X-sesjon, slik at du kommer tilbake til din grafiske desktop ved å trykke Alt + F7. Som betyr at du kan få til konsollen med alt fra Ctrl + Alt + F1 til Ctrl + Alt + F6.

Hvem er den skyldige?

Hva hvis du ikke er sikker på hvilken prosess er forårsaker problemet? Prøv den gode gamle topp kommando:

 $ topp topp - 12:07:33 up 04:13, 7-brukere, last gjennomsnitt: 0,56, 0,38, 0,34 [...] PID BRUKER VIRT RES% CPU% MEM COMMAND 6399 Carla 493 mill 27m 94,2 0,2 ​​konsole4386 Carla 1937m 819m 2,0 5,1 firefox1511 root 613m 189m 1.3 1.2 Xorg 

Dette (forkortet) eksempel peker Konsoll som bråkmaker, som det er å suge opp 94,2% CPU. Prosessen ID er rett der i utgang, slik at du vet hva prosessen for å drepe.

Logging redder dagen

De fleste tjenester logge sine aktiviteter. Hvis du ser i /var /log vil du se et sett av logger som CUPS, boot, dmesg, kern.log, syslog, og udev. Når du installerer tjenester de vanligvis har konfigurerbar logging, slik at du kan velge plassering og hvor mange detaljer, fra krise til debug:




debug

info

notice

warning

error

critical

alert

emergency


nøds utganger minst mulig informasjon, og feilsøke mest. info er en god hverdag logging nivå, spiller inn en blanding av rutine aktivitet og advarsler og feil. debug kan være overveldende, så en god taktikk er å slå på debug når du undersøker et problem, og sette den tilbake til info når det er løst. Hvor gjør du dette? Se i katalogen /etc. Individuelle tjenester har sine egne konfigurasjonsfiler, som /etc/cups/cupsd.conf. Syslog er konfigurert i /etc/syslog.conf, hvis din Linux har den gamle syslogd, eller /etc/rsyslog.conf hvis du har den skinnende nye rsyslogd.

Loggfiler er ikke akkurat morsomt å lese, men de er avgjørende for å løse problemer. Du kan hjem i på feilmeldinger med grep:

 $ grep-feil /var /log /syslog 

Eller noen tekststreng slik at du raskt finner den informasjonen du vil, som dette eksemplet for å se hva Network Manager har gjort:

 $ grep-Network /var /log /syslog 10 desember 14:54:50 studio Network [1402]: (eth1): DHCPv4 tilstand endret seg bundet - > fornye 10 desember 14:54:50 studio Network [1 402]: adresse 192.168.10.182 10 desember 14:54:50 studio Network [1 402]: prefiks 24 (255.255.255.0) 

Når du hjem på loggmeldingene som ser nyttig, kan du referere til dokumentasjon for å se hva som skjer, og traff Googles å finne ut mer.

Men Grafisk Apps ikke har Logger

De fleste grafiske applikasjoner genererer ikke loggfiler , noe som er trist og uhjelpsom. Men du kan fortsatt se noen kommandoutdataene ved å kjøre programmet fra kommandolinjen. Som min favoritt spill, Super TuxKart:

 $ SuperTuxKart Irrlicht Engine versjon 1.8.0 Linux 3.8.0-19-generic # 30-Ubuntu SMP Ons Apr 1 1 06:35:23 UTC 2 013 x86_64 [Filemanager] Datafiler vil bli hentet fra: '/usr /share /spill /SuperTuxKart' [File] Addons filer vil bli lagret i "/home/carla/.local/share/supertuxkart/addons'.

Debian krever at alle programmer til ha en mann side, så hvis du kjører Debian, Ubuntu, eller en av deres derivater du alltid har mannen siden referere til. Hvis det ikke er en man-side eller annen dokumentasjon prøve h bryteren for å se en hjelpemeny, som SuperTuxKart -h. Selvfølgelig kunne jeg ikke få noe til å oppføre seg dårlig, så jeg ville ha et eksempel for å vise deg, men når du har problemer med et grafisk program dette er en god måte å se hvorfor det er konstituert. Du kan mangle et bibliotek eller å ha en konflikt, og sjansene er kommandolinje utgang vil fortelle deg. Anmeldelser