Common Desktop Environment: Användarhandbok för systemadministratörer

Kapitel 2 Konfigurera sessionshanteraren

Sessionshanterarens uppgift är att starta skrivbordet och automatiskt spara och återställa färger, teckensnitt, musfunktioner, ljudvolym och tangentbordsklickningar samt program som körs.

Här följer en lista över funktioner i sessionshanteraren och avsnitt i detta kapitel:

Vad är en session?

En session är en mängd program, inställningar och resurser som visas på användarens skrivbord. Sessionshanteraren är en uppsättning konventioner och protokoll som gör att en användarsession kan sparas och återställas. En användare kan logga in i systemet och ta del av samma program, inställningar och resurser som fanns när användaren loggade ut. När användaren loggar in på skrivbordet för första gången kommer en standardsession att laddas. Därefter används begreppen aktiv session och hemsession.

Startsession

När en användare loggar in för första gången kommer sessionshanteraren att skapa användarens startsession med standardvärden. Normalt startas filhanteraren och hjälpvolymen Introduktion till skrivbordet.

Aktiv session

Den session som användaren kör betraktas alltid som aktiv session, oavsett om den har återställts vid inloggning från en sparad hemsession, en sparad aktiv session eller från systemets standardstartsession. Sessionshanteraren sparar automatiskt den aktiva sessionen, baserat på användarens Startinställningar i Inställningar, när användaren avslutar sessionen. När användaren loggar in nästa gång startas den tidigare sparade aktiva sessionen, vilket innebär att skrivbordet återställs till samma status som när användaren loggade ut.

Hemsession

Du kan också låta skrivbordet återställas till samma status varje gång användaren loggar in, oavsett vilken status det hade när användaren loggade ut. Användaren kan spara status i aktiv session och sedan, med Startinställningar i Inställningar, låta sessionshanteraren starta den sessionen varje gång användaren loggar in.

Skärmspecifika sessioner

Om en användare vill köra en viss session för en viss skärm, kan han eller hon skapa en skärmspecifik session. Användaren ska då kopiera mappen Hemmapp/.dt/sessions till Hemmapp/.dt/-skärm, där skärm är det verkliga, ogiltiga värddatornamnet (pablo:0 är giltigt, pablo.gato.com:0 eller unix:0 är det inte). När användaren loggar in på skärmen pablo:0, kommer Sessionshanteraren att starta de skärmspecifika sessionerna.

Starta en session

Sessionshanteraren startas via /usr/dt/bin/Xsession. När användaren loggar in med inloggningshanteraren, Xsession startas som standard.

Användaren kan också logga in med den traditionella teckenbaserade inloggningen (getty) och starta sessionshanterare manuellt med verktygen som startar X-hanteraren, xinit. Exempel: xinit /usr/dt/bin/Xsession.

När sessionen startar

När sessionshanteraren startar går den igenom följande steg för att starta användarens session:

  1. Läser in och kör skriptet Hemmapp/.dtprofile

  2. Läser in och kör skriptet Xsession.d

  3. Visar ett välkomstmeddelande

  4. Ställer in skrivbordets sökvägar

  5. Samlar ihop tillgängliga program

  6. Läser in och kör (valfritt) Hemmapp/.profile eller Hemmapp.login

  7. Startar ToolTalk\256 meddelande-daemon

  8. Laddar sessionsresurser

  9. Startar färghanteraren

  10. Startar arbetsytehanteraren

  11. Startar sessionens program

    Följande avsnitt beskriver stegen ovanför.

Läsa in och köra skriptet .dtprofile

När sessionen startar, körs skriptet Xsession, som läser in och kör användarens Hemmapp/.dtprofile -skript. Hemmapp/.dtprofile-skript är ett /bin/sh eller /bin/ksh-skript som gör att användaren kan ange miljövariabler för sessionen. Mer information om hur du anger miljövariabler finns i "Ytterligare anpassningar av sessionsstarten".

Om Hemmapp/.dtprofile-skriptet inte finns när användaren loggar in på skrivbordet för första gången kommer Xsession att kopiera skrivbordsstandarden sys.dtprofile till Hemmapp/.dtprofile.

Skrivbordets standardvärde är /usr/dt/config/sys.dtprofile. Om du vill ändra sys.dtprofile-skriptet, kopierar du sys.dtprofile från /usr/dt/config till /etc/dt/config/ och redigerar den nya filen.

Läsa in och köra skriptet Xsession.d

Efter att ha läst in och kört skriptet Hemmapp/.dtprofile kommer skriptet Xsessionatt läsa in och köra skriptet Xsession.d. Detta skript används för att allokera miljövariabler och starta eventuella bakgrundsprogram för användarens session. Standardbeskrivningen för Xsession.d-skript är:

0010.dtpaths - anpassningsbara dokumentsökvägar för skrivbordet

0020.dtims - startar valfri metodserver för indata

0030.dttmpdir - skapar en temporär mapp per användare och session

0040.xmbind - ställer in $XMBINDDIR till standardvärde för skrivbordet

Det kan finnas ytterligare leverantörsspecifika skript i Xsession.d.

Xsession läser först in och kör alla filer i /etc/dt/config/Xsession.d, följt av de filerna i mappen /usr/dt/config/Xsession.d mapp.

Skrivbordets standardskript Xsession.d finns i mappen /usr/dt/config/Xsession.d. Om du vill anpassa ett Xsession.d-skript, kopierar du skriptet från /usr/dt/config/Xsession.d till /etc/dt/config/Xsession.d och redigerar den nya filen. Du måste ha exekveringsbehörighet för att kunna göra detta.

Om du vill att Xsession automatiskt ska läsa in och köra ett eget skript, kopierar du ditt eget skript till /etc/dt/config/Xsession.d.


Obs!

När du ändrar eller skapar ett Xsession.d-skript, ska du kontrollera att alla förgrundskommandon du kör är korta, eftersom tiden som kommandot tar upp direkt påverkar starttiden. Om ett förgrundskommando inte avslutas hänger sig sessionsstarten. Kommandon som körs i ett Xsession.d -skript och som du vill ska fortsätta köras under hela sessionen, ska köras i bakgrunden.


Visa välkomstmeddelandet

Efter att ha läst in och kört skripten Hemmapp/.dtprofile och Xsession.d kommer Xsession visa ett välkomstmeddelande på skärmen. Du kan ändra välkomstmeddelandet eller stänga av det helt och hållet. Klienten dthello används för att visa meddelanden.

Om du vill ändra meddelandetexten ändrar du alternativet dthello genom att modifiera variabeln dtstart_hello[0].

Om du vill ändra dtstart_hello[0], skapar du ett /etc/dt/config/Xsession.d-skript som anger det nya värdet. Om du vill visa dagens meddelande för alla användare, skapar du ett körbart sh eller ksh-skript, t ex /etc/dt/config/Xsession.d/minavar och ställer in dtstart_hello[0] så här:

dtstart_hello[0]="/usr/dt/bin/dthello -file /etc/motd &"

På samma sätt kan användarna ändra välkomstmeddelandet för sina egna sessioner genom att ange dtstart_hello[0] i Hemmapp/.dtprofile.

Om du vill stänga av välkomstmeddelandet anger du dtstart_hello[0]=" ".

Mer information om dthello finns i direkthjälpen (man) på dthello.

Ställa in skrivbordets sökvägar

Skrivbordssökvägar skapas vid inloggning av dtsearchpath. Det finns två kategorier av miljövariabler som används av dtsearchpath:

Inmatningsvariabel - Systemtäckande och egna miljövariabler vars värden sätts av systemadministratören eller av slutanvändaren.

Utmatningsvariabel - Variabler skapade och tilldelade med värden från dtsearchpath. Värdet på varje variabel är sökvägen till skrivbordssessionen.

Om du vill ändra kommandoradsalternativ för dtsearchpath ändrar du variabeln dtstart_searchpath. Om du vill ändra variabeln dtstart_searchpath för alla användare, skapar du ett körbart sh eller ksh-skript (t ex /etc/dt/config/Xsession.d/minavar), och anger dtstart_searchpath så här:

dtstart_searchpath="/usr/dt/bin/dtsearchpath"

Användarna kan på ett liknande sätt ändra dtsearchpath-alternativ för sina egna sessioner genom att lägga dtstart_searchpath i Hemmapp/.dtprofile.

Mer information om dtsearchpath finns i Kapitel 9. Mer information om dtsearchpath alternativ, finns i direkthjälpen (man) på dtsearchpath.

Samla ihop tillgängliga program

Nästa steg efter att ha ställt in skrivbordssökvägar är att samla ihop tillgängliga program med hjälp av dtappgather. Om du vill ändra kommandoradsalternativ för dtappgather ändrar du variabeln dtstart_appgather. Om du vill ändra variabeln dtstart_appgather för alla användare, skapar du ett körbart sh eller ksh-skript (t ex /etc/dt/config/Xsession.d/minavar), och anger dtstart_appgather så här:

dtstart_appgather="/usr/dt/bin/dtappgather &"

Användarna kan på ett liknande sätt ändra dtappgather alternativ för sina egna sessioner genom att lägga dtstart_appgather i Hemmapp/.dtprofile.

Mer information om dtappgather-alternativ finns i direkthjälpen (man) på dtappgather(4).

Läsa in och köra skripten .profile och .login (valfritt)

Xsession kan läsa in och köra användarnas traditionella Hemmapp/.profile eller Hemmapp.login-skript. Som standard gäller inte de här skripten. Om du vill göra så att Xsession läser in och kör skripten .profile eller .login, anger du DTSOURCEPROFILE till true.

Om du vill ändra DTSOURCEPROFILE för alla användare skapar du skriptet /etc/dt/config/Xsession.d som ställer in det nya värdet. Om du vill ange DTSOURCEPROFILE till true för alla användare, skapar du ett körbart sh eller ksh-skript, t ex /etc/dt/config/Xsession.d/minavar och anger DTSOURCEPROFILE så här:

DTSOURCEPROFILE=true

Användarna kan på ett liknande sätt ange DTSOURCEPROFILE för sina egna sessioner genom att ange DTSOURCEPROFILE till true i Hemmapp/.dtprofile.

Starta ToolTalk

ToolTalk-meddelandedaemonen, ttsession, gör att oberoende program kan kommunicera utan att ha direkt kännedom om varandra. Program skapar och skickar ToolTalk-meddelanden för att kommunicera med varandra. ttsession kommunicerar i nätverket för att leverera meddelanden.

Om du vill ändra kommandoradsalternativ för ttsession ändrar du variabeln dtstart_ttsession. Om du vill ändra variabeln dtstart_ttsession för alla användare, skapar du ett körbart sh eller ksh-skript (t ex /etc/dt/config/Xsession.d/minavar) och anger dtstart_ttsession så här:

dtstart_ttsession="/usr/dt/bin/ttsession -s"

Användarna kan på ett liknande sätt ändra ttsession-alternativ för sina egna sessioner genom att ange dtstart_ttsession i Hemmapp/.dtprofile.

Mer information om ttsession-alternativet finns i direkthjälpen (man) ttsession. Mer information om ttsession finns i Common Desktop Environment: ToolTalk Messaging Overview.

Starta sessionshanterarklienten

Här startar Xsession /usr/dt/bin/dtsession, som innehåller sessionens startprocess.

Ladda sessionsresurser

Sessionshanteraren använder X-serverRESOURCE_MANAGER för att göra skrivbordsresurser tillgängliga för alla program. Sessionshanteraren laddar RESOURCE_MANAGER genom att:

Skrivbordets standardresurser finns i /usr/dt/config/språk/sys.resources. Dessa resurser görs tillgängliga för alla användare via egenskapen RESOURCE_MANAGER. Den här filen bör inte redigeras eftersom den skrivs över vid varje skrivbordsinstallation.

Du kan utvidga systemets standardresurser genom att skapa /etc/dt/config/språk/sys.resources. I den här filen kan du åsidosätta standardresurserna eller ange ytterligare resurser för alla skrivbordsanvändare. Eftersom den här filen kopplas samman med skrivbordets standardresurser när sessionen startar, ska endast nya eller uppdaterade resursspecifikationer placeras i den här filen. Resurser som specificeras i filen blir tillgängliga för alla användares sessioner via egenskapen RESOURCE_MANAGER. Resurser som anges i den här filen har företräde framför de som anges i resursfilen för standardskrivbordet.

Användare kan utvidga skrivbordets standardresurser och systemtäckande resurser med filen Hemmapp/.Xdefaults fil. Resurser som anges i den här filen blir tillgängliga för denna användares session via egenskapen RESOURCE_MANAGER. Resurser som anges i den här filen har företräde framför de som anges i resursfiler för standardskrivbordet eller resursfiler från systemadministratörer.


Obs!

Hjälpprogrammet X Toolkit Intrinsics anger att det laddar resurser för ett program från antingen RESOURCE_MANAGER eller från Hemmapp/.Xdefaults, men inte från båda. Vanligtvis innebär detta att användarens Hemmapp/.Xdefaults-fil ignoreras. Men sessionshanteraren kan innehålla Hemmapp/.Xdefaults genom att den slås samman med RESOURCE_MANAGER när sessionen startar, vilket beskrivs ovan. Om en användare ändrar Hemmapp/.Xdefaults, blir ändringarna inte synliga för nya program förrän användaren anropar funktionen Ladda om resurser. Funktionen Ladda om resurser instruerar sessionshanteraren att starta om RESOURCE_MANAGER med standardresurser, systemtäckande resurser eller användarspecificerade resurser. På detta sätt görs ändringar av systemtäckande och egna resursfiler tillgängliga för alla program.


Mer information finns i

Starta färgservern

Sessionshanteraren fungerar som en färgserver för skrivbordet och tillhandahåller följande uppsättningar dtsession-resurser som kan användas för att konfigurera den.

foregroundColor - kontrollerar om en bildpunkt finns tillgänglig för förgrundsfärgen

dynamicColor - anger om färger som inte kan redigeras finns tillgängliga

shadowPixmaps - anger om färger ska ha en övre eller undre skugga

colorUse - begränsar färgintervall

writeXrdbColors - anger om *background eller *foreground placeras i resursdatabasen

Du anger färghanterarresurser för alla användare genom att skapa /etc/dt/config/språk/sys.resources och ange färghanterarresurser i den filen.

Användarna kan på ett liknande sätt ange färghanterarresurser för sina egna sessioner genom att ange sådana resurser i Hemmapp/.Xdefaults.

Mer information om hur du anger färghanterarresurser finns i "Hantera färger".

Starta arbetsytehanteraren

Sessionshanteraren startar arbetsytehanteraren. Normalt startas /usr/dt/bin/dtwm. En alternativ fönsterhanterare kan anges med resursen wmStartupCommand.

Du anger en alternativ fönsterhanterare för alla användare genom att skapa /etc/dt/config/språk/sys.resources och ange fullständig sökväg samt alternativ för fönsterhanteraren med resursen Dtsession*wmStartupCommand i den filen.

Användarna kan på ett liknande sätt ange en alternativ fönsterhanterare för sina egna sessioner genom att ange resursen Dtsession*wmStartupCommand i Hemmapp/.Xdefaults.

Mer information om fönsterhanterare finns i Kapitel 16.

Starta sessionsprogram

När sessionen startar, startar sessionshanteraren om alla program som sparades som en del av sessionen. Systemets standardprogramuppsättning, som ska återställas som en del av användarens intiala session, finns i /usr/dt/config/språk/sys.session. Den här filen ska inte redigeras eftersom den skrivs över vid kommande skrivbordsinstallationer.

Mer information finns i direkthjälpen (man) för dtactionfile(4).

En systemadministratör kan ersätta den programuppsättning som startas som en del av användarens startsession genom att kopiera /usr/dt/config/språk/sys.session till /etc/dt/config/språk/sys.session och ändra den senare filen. Till skillnad från resursfilen används den här filen som en fullständig ersättning till skrivbordets standardfil, så du kan skapa en kopia av systemets standardfiler och göra nödvändiga ändringar.

Ytterligare anpassningar av sessionsstarten

I det här avsnittet beskrivs hur du:

Ange miljövariabler

    Om du vill ange systemtäckande miljövariabler skapar du en fil i mappen /etc/dt/config/Xsession.d som anger och exporterar variabeln.

Om du t ex skapar ett körbart ksh-skript, /etc/dt/config/Xsession.d/minavar, som innehåller:

	export MINVARIABEL="värde"

anges variabeln MINVARIABEL i alla användares miljö vid nästa inloggning.

    Om du vill ange egna miljövariabler anger du variabeln i Hemmapp/.dtprofile.

Exempel:

	export MINVARIABEL="värde"

anger variabeln MINVARIABEL i alla användares miljö vid nästa inloggning.


Obs!

Sessionshanteraren läser inte automatiskt filerna .profile eller .login. Du kan konfigurera om den så att dessa filer kan användas; se Failed Cross Reference Format.


Ange resurser

    Om du vill ange systemtäckande resurser lägger du till resurserna i filen /etc/dt/config/språk/sys.resources. (Först måste du skapa filen.)


Obs!

.dtprofile stöder bara syntaxerna /bin/sh eller /bin/ksh.


Om du i t ex /etc/dt/config/C/sys.resources anger du:

	AnApplication*resource värde

Då anges resursen AnApplication*resource i alla användares RESOURCE_MANAGER-egenskap vid nästa inloggning.

    Om du vill ange egna resurser lägger du till dem i filen Hemmapp/.Xdefaults.

Ange skärmspecifika resurser

Du kan ange skärmspecifika resurser för alla användare i systemet. Användarna kan också ange skärmspecifika resurser för sina egna sessioner. Du kan därför ange resurser beroende på vilken skärm som användaren använder för att logga in till skrivbordet.

    Om du vill ange skärmspecifika resurser för alla användare i systemet skapar du filen /etc/dt/config/språk/sys.resources som anger den skärmspecifika resursen.

    Om du vill ange egna skärmspecifika resurser anger du resursen i Hemmapp/.Xdefaults.

    Du avgränsar resurser genom att omsluta dem med villkorssatsen cpp villkorlig programsats. Makrot DISPLAY_skärmnamn definieras beroende på värdet i variabeln $DISPLAY. Detta görs genom att alla punkt- och kolontecken omvandlas till understrykning (_), alla skärmspecifikationer rensas och slutligen läggs DISPLAY_ till som prefix till resultatet.

    Exempelvis $DISPLAY av :0 visar DISPLAY_0, och $DISPLAY av blanco.gato.com:0.0 visar DISPLAY_blanco_gato_com_0. Det resulterande värdet kan användas som en del i ett cpp-test i en sessionsresursfil. Om du i t ex /etc/dt/config/C/sys.resources anger du:

    Myapp*resource: värde
    #ifdef DISPLAY_blanco_gato_com_0
     Myapp*resource: specialvalue1
     #endif
    #ifdef DISPLAY_pablo_gato_com_0
     Myapp*resource: specialvalue2
     #endif

    Ange resursen MyApp*resource i RESOURCE_MANAGER till specialvalue1 när användaren loggar in på skärmen blanco.gato.com:0; specialvalue2 när användaren loggar in på pablo.gato.com:0; och värde när användaren loggar in på en annan skärm.

Ändra program för startsessionen

Du kan ange att andra program ska starta som en del av användarens startsession.

  1. Kopiera /usr/dt/config/språk/sys.session till /etc/dt/config/språk/sys.session.

  2. Ändra den nya filen sys.session.

    Alla poster i sys.session ser ut så här:

    	dtsmcmd -cmd command_and_options
    

    Om du vill starta ytterligare ett program som en del av användarens startsession, anger du en ny sys.session-post med fullständig sökväg. Om du t ex vill starta /usr/bin/X11/xclock som en del av användarens startsession, lägger du till posten xclock till /etc/dt/config/C/sys.session:

    	#
     	# Start up xclock...
     	#
     	dtsmcmd -cmd "/usr/bin/X11/xclock -digital"

Ange en skärmspecifik session

En användare kan ange en skärmspecifik session för att justera sessionen för en viss skärm.

    Kopiera mappen Hemmapp/.dt/sessions till Hemmapp/.dt/skärm där skärm är det verkliga, absoluta värddatornamnet (pablo:0 är giltigt, pablo.gato.com:0 eller unix:0 är det inte).

Du kan t ex skapa en skärmspecifik session för skärmen pablo.gato.com:0:

cp -r Hemmapp/.dt/sessions Hemmapp/.dt/pablo:0

När användaren loggar in på skärmen pablo.gato.com:0, startar sessionshanteraren den skärmspecifika sessionen.

Köra ytterligare kommandon vid sessionsstart och utloggning

Användarna kan ange att ytterligare kommandon ska startas när de loggar in till skrivbordssessionen. Detta är användbart vid X-inställningar som inte sparas av sessionshanteraren. Användaren kan t ex använda xsetroot för att anpassa rotpekaren (arbetsyta). Ett annat användningsomåde är att starta program som inte kan sparas och återställas av sessionshanteraren. Om ett program inte vill starta när sessionen startar, kan användaren starta klienten med den här metoden.

Köra ytterligare kommandon vid sessionsstart

    Skapa filen Hemmapp/.dt/sessions/sessionetc som innehåller kommandona.

Normalt är den här filen ett skript som måste ha exekveringsbehörighet. Processer i sessionetc ska köras i bakgrunden.


Obs!

Använd inte sessionetc för att starta klienter som automatiskt återställs av sessionshanteraren. Om du gör det kan flera kopior av programmet startas. Du kanske inte ser alla kopior omedelbart eftersom fönstren kan staplas på varandra.


Köra ytterligare kommandon vid utloggning

En stödfil för sessionetc är sessionexit. Använd sessionexit för att utföra vissa bearbetningar när sessionen avslutas som inte hanteras av sessionshanteraren.

    Skapa filen Hemmapp/.dt/sessions/sessionexit som innehåller kommandona.

Liksom sessionetc är den här filen normalt ett skript med exekveringsbehörighet.

Återskapa en session från säkerhetskopia

När sessionshanteraren sparar en session lagras sessionens information i mappen Hemmapp/.dt/sessions, eller i mappen Hemmapp/.dt/skärm om en skärmspecifik session används. I dessa mappar skapas en undermapp med namnet current eller Home som lagrar information för den aktiva sessionen eller hemsessionen. Innan sessionsinformationen lagras, skapar sessionshanteraren en säkerhetskopia av den tidigare sessionen med det namnet och lagrar den i current.old eller home.old.

  1. Logga in med Felsäker session eller Kommandorad från inloggningsfönstret.

  2. Kopiera mappen för den säkerhetskopierade sessionen till aktivt namn, t ex till säkerhetskopierad hemsession:

    	cp -r Hemmapp/.dt/sessions/home.old \
     	Hemmapp/.dt/sessions/home

    En skärmspecifik session kan återskapas på samma sätt.

Undersöka problem vid sessionsstart

    Undersök den här filen Hemmapp/.dt/startlog.

Sessionshanteraren loggar varje användares startsession i den här filen.

Filer och mappar för sessionshanteraren