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:
Anpassa startsessionen för alla skrivbordsanvändare
Anpassa miljö och resurser för alla skrivbordsanvändare
Ändra sessionens startmeddelande
Ändra parametrar för sessionens startverktyg och daemons
Anpassa användningen av skrivbordsfärger för alla användare
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.
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.
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.
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.
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.
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 sessionshanteraren startar går den igenom följande steg för att starta användarens session:
Samlar ihop tillgängliga program
Läser in och kör (valfritt) Hemmapp/.profile eller Hemmapp.login
Följande avsnitt beskriver stegen ovanför.
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.
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.
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.
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.
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.
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).
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.
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.
Här startar Xsession /usr/dt/bin/dtsession, som innehåller sessionens startprocess.
Sessionshanteraren använder X-serverRESOURCE_MANAGER
för att göra skrivbordsresurser tillgängliga för alla program. Sessionshanteraren laddar RESOURCE_MANAGER
genom att:
Ladda systemets standardresurser
Slå samman alla systemtäckande resurser som anges av systemadministratören.
Slå samman användarspecificerade resurser.
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.
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
Direkthjälpen (man) för dtresourcesfile(4)
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".
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.
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.
I det här avsnittet beskrivs hur du:
Anger miljövariabler
Anger resurser
Använder skärmberoende sessioner
Kör skript vid inloggning
Återskapar en säkerhetskopierad session
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.
Exempel:
export MINVARIABEL="värde"
anger variabeln MINVARIABEL
i alla användares miljö vid nästa inloggning.
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.
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.)
.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.
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.
Du kan ange att andra program ska starta som en del av användarens startsession.
Kopiera /usr/dt/config/språk/sys.session till /etc/dt/config/språk/sys.session.
Ä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"
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.
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.
Normalt är den här filen ett skript som måste ha exekveringsbehörighet. Processer i sessionetc ska köras i bakgrunden.
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.
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.
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.
Logga in med Felsäker session eller Kommandorad från inloggningsfönstret.
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.
Sessionshanteraren loggar varje användares startsession i den här filen.
/usr/dt/bin/Xsession
/usr/dt/config/Xsession.d/*
/usr/dt/bin/dtsession
/usr/dt/bin/dtsession_res
Hemmapp/.dt/sessions/current
Hemmapp/.dt/sessions/home
Hemmapp/.dt/skärm/current
Hemmapp/.dt/skärm/home