Solaris Common Desktop Environment: Handbok för avancerade användare och 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.

Med sessionshanteraren kan du:

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. Därefter används begreppen aktiv session och hemsession.

Startsessionen

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 statusen i den aktiva sessionen och sedan med hjälp av 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 kan göra det genom att kopiera katalogen Hemkatalog/.dt/sessions till Hemkatalog/.dt/skärm, där skärm är det verkliga, ogiltiga värddatornamnet (pablo:0 är t ex giltigt, medan pablo.gato.com:0 eller unix:0 inte är giltiga). När användaren loggar in på skärmen pablo:0, kommer sessionshanteraren att starta de skärmspecifika sessionerna.

Starta en session

Sessionshanteraren startas med /usr/dt/bin/Xsession. Xsession, fil

Användaren kan också logga in med den traditionella teckenbaserade inloggningen (getty) och starta sessionshanteraren manuellt med verktygen som startar en X-server, t ex xinit. Till 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 kommandofilen Hemkatalog/.dtprofile

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

  3. Visar ett välkomstmeddelande sessionshanteraren

  4. Konfigurerar skrivbordssökvägar

  5. Samlar ihop tillgängliga program

  6. Läser eventuellt in och kör Hemkatalog/.profile eller Hemkatalog/.login

  7. Startar ToolTalk®, bakgrundsprogrammet för meddelanden

  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 kommandofilen Xsession, som läser in och kör användarens Hemkatalog/.dtprofile-kommandofil. Hemkatalog/.dtprofile-kommandofilen är en /bin/sh- eller /bin/ksh-kommandofil 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 Hemkatalog/.dtprofile-kommandofilen inte finns första gången som användaren loggar in på skrivbordssystemet kommer Xsession att kopiera skrivbordsstandarden sys.dtprofile till Hemkatalog/.dtprofile.

Skrivbordets standardvärde är /usr/dt/config/sys.dtprofile. Om du vill ändra sys.dtprofile-kommandofilen, 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

När Hemkatalog/.dtprofile-kommandofilen har lästs in och körts, läser kommandofilen Xsession in kommandofilen Xsession.d och kör den. Detta skript används för att allokera miljövariabler och starta eventuella bakgrundsprogram för användarens session. Standardbeskrivningen för Xsession.d-kommandofiler är:

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

0020.dtims – startar valfri indatametodserver

0030.dttmpdir – skapar en tillfällig katalog för varje användare och session

0040.xmbind – anger $XMBINDDIR som skrivbordsstandard

Det kan finnas ytterligare kommandofiler från olika leverantörer i Xsession.d.

Xsession läser först in och kör alla filer i /etc/dt/config/Xsession.d och därefter filerna i katalogen /usr/dt/config/Xsession.d.

Skrivbordets Xsession.d-standardkommandofiler finns i katalogen /usr/dt/config/Xsession.d. Om du vill ändra Xsession.d-kommandofilen, kopierar du kommandofilen 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 en egen kommandofil, kopierar du den till /etc/dt/config/Xsession.d.


Obs!  

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


Visa välkomstmeddelandet

När kommandofilerna Hemkatalog/.dtprofile och the Xsession.d har lästs in visar Xsession 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 meddelandet.

Om du vill byta meddelandetext ändrar du dthello-alternativen genom att redigera variabeln dtstart_hello[0].

Om du vill ändra dtstart_hello[0], skapar du en /etc/dt/config/Xsession.d-kommandofil som anger det nya värdet. Om du vill visa dagens meddelande för alla användare, skapar du en körbar sh- eller ksh-kommandofil, 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 sessioner genom att ange dtstart_hello[0] i Hemkatalog/.dtprofile.

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

Mer information om dthello finns i avsnittet om dthello i direkthjälpen (man pages).

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:

Indatavariabler – Systemtäckande och egna miljövariabler vars värden anges av systemadministratören eller av slutanvändaren.

Utdatavariabler – Variabler som har skapats och tilldelats värden av 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 en körbar sh- eller ksh-kommandofil (t ex /etc/dt/config/Xsession.d/minavar), och anger dtstart_searchpath så här:

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

Användarna kan bara ändra dtsearchpath-alternativ för sina egna sessioner genom att ange dtstart_searchpath i Hemkatalog/.dtprofile.

Mer information om dtsearchpath finns i Kapitel 9. Mer information om dtsearchpath-alternativ finns i direkthjälpsavsnittet (man page) om dtsearchpath.

Samla ihop tillgängliga program

När skrivbordssökvägar har angetts är nästa steg 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 en körbar sh- eller ksh-kommandofil (t ex /etc/dt/config/Xsession.d/minavar), och anger dtstart_appgather så här:

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

Användarna kan bara ändra dtappgather-alternativ för sina egna sessioner genom att ange dtstart_appgather i Hemkatalog/.dtprofile.

Mer information om dtappgather -alternativ finns i direkthjälpsavsnittet (man page) om dtappgather(4).

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

Xsession kan läsa in och köra en användares vanliga Hemkatalog/.profile- eller Hemkatalog/.login-kommandofiler. Som standard gäller inte de här skripten. Du anger för Xsession att .profile- eller .login-kommandofilen ska läsas in genom att ange true för DTSOURCEPROFILE.

Om du vill ändra DTSOURCEPROFILE för alla användare skapar du en /etc/dt/config/Xsession.d-kommandofil som anger det nya värdet. Om du vill ange true för DTSOURCEPROFILE för alla användare, skapar du en körbar sh- eller ksh-kommandofil (t ex /etc/dt/config/Xsession.d/minavar), och anger DTSOURCEPROFILE så här:

DTSOURCEPROFILE=true

Användarna kan på samma sätt ändra DTSOURCEPROFILE för sina egna sessioner genom att ange true för DTSOURCEPROFILE i Hemkatalog/.dtprofile.

Starta ToolTalk

Med hjälp av ToolTalk, bakgrundsprogrammet för meddelanden, ttsession, kan oberoende program kommunicera utan att ha direkt kännedom om varandra. Programmen 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 en körbar sh- eller ksh-kommandofil (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å samma sätt ändra ttsession-alternativ för sina egna sessioner genom att ange dtstart_ttsession i Hemkatalog/.dtprofile.

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

Starta sessionshanterarklienten

Nu startar Xsession /usr/dt/bin/dtsession, som innehåller sessionens startprocess.

Ladda sessionsresurser

Sessionshanteraren använder X-serveregenskapen RESOURCE_MANAGER för att göra skrivbordsresurser tillgängliga för alla program. Sessionshanteraren öppnar 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ändarsessioner 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ändarsessioner 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 Hemkatalog/.Xdefaults. Resurser som anges i den här filen blir tillgängliga för alla användarsessioner 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 öppnar resurser för ett program antingen från RESOURCE_MANAGER eller från Hemkatalog/.Xdefaults, men inte från båda. Vanligtvis innebär detta att användarens Hemkatalog/.Xdefault-fil ignoreras. Sessionshanteraren kan dock hantera Hemkatalog/.Xdefaults genom att den slås samman med RESOURCE_MANAGER när sessionen startar, vilket beskrivs ovan. Om en användare ändrar Hemkatalog/.Xdefaults, blir ändringarna inte synliga för nya program förrän användaren anropar åtgärden Ladda om resurser. Åtgärden Ladda om resurser instruerar sessionshanteraren om att RESOURCE_MANAGER ska startas om med standardresurser, systemtäckande resurser och 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ärghanteraren

Sessionshanteraren fungerar som en färghanterare för skrivbordssystemet och tillhandahåller följande uppsättning av dtsession-resurser som kan användas för att konfigurera den.

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

dynamicColor – anger om färger som inte kan redigeras är tillgängliga

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

colorUse – begränsar färgtilldelning

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

Du kan ange 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å samma sätt ange färghanterarresurser för sina egna sessioner genom att ange resurserna i Hemkatalog/.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 kan ange en annan fönsterhanterare för alla användare genom att skapa /etc/dt/config/språk/sys.resources och ange den fullständiga sökvägen till fönsterhanteraren och alternativ för den med resursen Dtsession*wmStartupCommand i den filen.

Användarna kan bara ange en annan fönsterhanterare för egna sessioner genom att ange resursen Dtsession*wmStartupCommand i Hemkatalog/.Xdefaults.

Mer information om fönsterhanteraren 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 startsession, 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 katalogen /etc/dt/config/Xsession.d som anger och exporterar variabeln.

Om du t ex skapar en körbar ksh-kommandofil, /etc/dt/config/Xsession.d/minavar, som innehåller:

	export MINVARIABEL="värde"

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

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

Till exempel:

	export MINVARIABEL="värde"

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


Obs!  

Sessionshanteraren läser inte automatiskt filerna .profile eller .login. Du kan dock konfigurera den så att dessa filer används. Se Läsa in och köra skripten .profile och .login (valfritt).


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 /bin/sh- eller /bin/ksh-syntax.


Om du t ex specificerar följande i /etc/dt/config/C/sys.resources:

	AnApplication*resource: värde

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

    Om du vill ange egna resurser lägger du till resurserna i filen Hemkatalog/.Xdefaults.

Så här anger du 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 skrivbordsanvä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 Hemkatalog/.Xdefaults.

    Du begränsar resurser genom att innesluta dem i cpp-villkorsprogramsatser. Makrot DISPLAY_skärmnamn definieras beroende av värdet i variabeln DISPLAY_. Detta görs genom att alla punkt- och kolontecken omvandlas till understrykning (_) och alla skärmspecifikationer tas bort, och slutligen läggs DISPLAY_ till som prefix till resultatet.

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

    MittPrgm*resource: värde
    #ifdef DISPLAY_blanco_gato_com_0
     MittPrgm*resource: specialvärde1
     #endif
    #ifdef DISPLAY_pablo_gato_com_0
     MittPrgm*resource: specialvärde2
     #endif

    anges resursen MittPrgm*resource i RESOURCE_MANAGER till specialvärde1 när användaren loggar in på skärmen blanco.gato.com:0, specialvärde2 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 kommandon_och_alternativ
    

    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:

    	#
     	# Starta 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 katalogen Hemkatalog/.dt/sessions till Hemkatalog/.dt/skärm, där skärm är det verkliga, ogiltiga värddatornamnet (pablo:0 är t ex giltigt, medan pablo.gato.com:0 eller unix:0 inte är giltiga).

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

cp -r Hemkatalog/.dt/sessions Hemkatalog/.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 Hemkatalog/.dt/sessions/sessionetc som innehåller kommandona.

Normalt är den här filen ett skript som måste ha exekveringsbehörighet. Processer som startas 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 kompletteringsfil till sessionetc är sessionexit. Använd sessionexit för att utföra vissa bearbetningar vid sessionsavslutningar som inte hanteras av sessionshanteraren.

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

Liksom sessionetc är den här filen normalt en kommandofil med exekveringsbehörighet.

Återskapa en session från säkerhetskopia

När sessionshanteraren sparar en session lagras sessionsinformationen katalogen Hemkatalog/.dt/sessions, eller i katalogen Hemkatalog/.dt/skärm om en skärmspecifik session används. I de här katalogerna skapas en underkatalog 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 katalogen för den säkerhetskopierade sessionen till det aktiva namnet. Så här återskapar du t ex den säkerhetskopierade hemsessionen:

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

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

Undersöka problem vid sessionsstart

    Kontrollera filen Hemkatalog/.dt/startlog.

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

Filer och kataloger för sessionshanteraren