Упатство: Стартување на системот и соодветни поставки

Од Сподели wiki
Преработка од 23:28, 7 јуни 2007; направена од 85.30.127.44 (разговор)
(разл) ← Претходна преработка | Последна преработка (разл) | Следна преработка → (разл)
Прејди на прегледникот Прејди на пребарувањето

Белешки од IRC сесија на тема стартување на GNU/Linux и вчитување на датотеките со кориснички поставки

02.06.2007, 20:03h - 20:53h

Сите shell-ови имаат 3 режими: login shell, интерактивен shell и неинтерактивен shell.

Неинтерактивен е shell-от кога е стартуван за да изврши некоја скрипта и како таков обично не чита никаков .rc фајл. Пример: bash -c 'команди' или /патека/до/некоја/bash-скрипта. Нормално тоа може да се постави и поинаку :) - $ man bash ако баш некој го интересира.

login shell е тој што е стартуван во текстуален режим. Значи пишувате username и password на login промптот и потоа се стартува login shell. И кога shell-от е стартуван од konsole или xterm или во било која друга слична ситуација тоа е интерактивен shell.

Текстов подолу објаснува како се исчитуваат одредени кориснички поставки (сместени во $HOME/.*rc датотеки) во зависност од тоа како ќе се стартува системот т.е. кој shell ќе биде употребен.

login shell-от на почеток го исчитува /etc/profile. Потоа се исчитува .bash_profile (или ако тоа го нема) .profile. најпрактично е поставките да се чуваат во .bashrc, а .bash_profile да го source-ува.

По пријавувањето на login shell, следниот чекор за стартување на X би бил startx. Тогаш се користи .xinitrc. Не е лошо во .xinitrc да се повикува .xprofile па заедничките работи да се ставаат во .xprofile секогаш

Забелешка: ми се чини дека недостасува објаснување какви поставки стојат во секоја од овие датотеки!

kdm/xdm/gdm стартуваат X сервер и стартуваат графички login програм. Прво се стартува /etc/X11/xdm/GiveConsole и тоа со root привилегии. Тоа е шанса да се направи нешто специјално во системот пред корисникот да се пријави. После се стартува /etc/X11/xdm/Xsession со привилегии на корисникот. Xsession прави неколку работи, меѓу кои stderr го редиректира во $HOME/.xsession-errors, го вчитува $HOME/.xprofile (додуше ова на Ubuntu не го прави ова) и на крај или го стартува ~/.xsession што мора да биде извршна датотека или ако не постои ја стартува сесијата избрана во xdm. KDM во принцип ја следи логиката на XDM само што си има копија на овие скрипти во /opt/kde/ некаде. GDM би требало да работи слично, но можеби има исклучоци, бидејќи овие постојано сакаат нешто по свое да прават.

Значи при стартување на системот со login shell (често runlevel 3) патот е ваков: .(bash_)profile -> .bash_rc, startx ->.xinitrc ->xprofile и од него сите други. Потоа кога во X ќе стартувате konsole, xterm и слично .bashrc повторно се вчитува.

А со XDM/KDM/GDM патот е ваков: KDM -> /opt/kde/share/config/kdm/Xsession (source-ува ~/.xprofile) -> ~/.xsession (ако го има, ако не си стартува како што знае).