Page 1 of 1

Only One Instance (dotaz pro pokročilejší uživatele)

Posted: 13 Dec 2008, 23:11
by Jan Rysavy
Řeším tu v souvislosti s jiným problémem otázku chování Salamandera v režimu "Allow only one instance of Salamander at one time", nově od 2.52 beta 1 také parametr "-o".

Jak by se Salamander měl chovat v následujících situacích?
1. Instance Salamandera spuštěné v různých sessions (Terminal Services / Fast User Switching) by se z hlediska OnlyOneInstance neměly vidět.

2. Instance v rámci jedné session spuštěné pod různými uživateli (například pod Windows XP pomocí runas příkazu). Mají se vidět a aktivovat? Nebo se mají vidět pouze instance spuštěné pod stejným uživatelem?

3. Instance v rámci jedné session spuštěné s různými Integrity Levels (například pod Windows Vista nebo Server 2008 pomocí RunAsAdministrator). Mají se vidět? Nebo se mají vidět pouze instance na stejné úrovni?

Pojmem vidět mám na mysli to, že nově spouštěná instance najde již běžící, aktivuje jí a sama se ukončí (pokud je volba zapnutá v konfiguraci nebo byl specifikován nový parametr -o). Pokud nová instance již běžící instanci "neuvidí", nastartuje se klasicky.

Poznámka: Součástí aktivace je i předání parametrů (pokud existují), změní se cesty v panelech. Možná by se měly předávat i ostatní parametry (index ikonky, text v titulku).

Jak to vidíte? Všechna řešení jsou možná, otázkou je pouze co zvolit.

Re: Only One Instance (dotaz pro pokročilejší uživatele)

Posted: 14 Dec 2008, 11:41
by cincura.net
Jan Rysavy wrote:1. Instance Salamandera spuštěné v různých sessions (Terminal Services / Fast User Switching) by se z hlediska OnlyOneInstance neměly vidět.
Ano, nemely.
Jan Rysavy wrote:2. Instance v rámci jedné session spuštěné pod různými uživateli (například pod Windows XP pomocí runas příkazu). Mají se vidět a aktivovat? Nebo se mají vidět pouze instance spuštěné pod stejným uživatelem?
IMO pokud pod stejnou session & jiny user, tak bych zobrazil dotaz co delat.
Jan Rysavy wrote:3. Instance v rámci jedné session spuštěné s různými Integrity Levels (například pod Windows Vista nebo Server 2008 pomocí RunAsAdministrator). Mají se vidět? Nebo se mají vidět pouze instance na stejné úrovni?
Maji se videt bez ohledu na integrity level, IMO.

Posted: 14 Dec 2008, 14:06
by Petr Solin
Ve vse trech pripadech si myslim, ze by se instance videt nemely. Jinak to povede prilis snadno k praci pod jinym uzivatelem nebo na jinem integrity levelu, coz jen prinese kupu neprijemnosti. Nastaveni Only One Instance ma zamezit jen spusteni vice ekvivalentnich instanci. Napr. kdyz budu chtit navstivit adresar, kam ma pristup jen jiny uzivatel, nemelo by mi to v tom blokovat (myslim tim pouziti Run As).

Posted: 14 Dec 2008, 15:27
by Ether
1) Nevidět, nedává to smysl. Pokud by byly tyto instance stejného uživatele, pak by to smysl dávalo, ale stejně by to bylo nevhodné. Navíc by pak Salamander nemohl aktivovat tu instanci, kterou našel na jiné session.

2) Jsem pro nevidět, ale tohle nemůžu objektivně posoudit. Pravidelně mívám spuštěné až tři instance Salamandera, každá pod jiným uživatelem, ale OnlyOneInstance nemám zaplé, takže si ani nejsem momentálně schopen představit, jaká motivace se za tím skrývá (a tedy jaké chování takový uživatel bude očekávat).

3) Z pohledu bezpečnosti by měla být elevovaná instance izolovaná a nereagovat na žádné požadavky od aplikací nižších úrovní integrity. Z pohledu uživatele by asi takové chování nedávalo smysl, pokud neuvidí mezi těmito dvěma instancemi rozdíl a nebude chápat, proč se mu neaktivovala již běžící instance.
Petr Solin wrote:Napr. kdyz budu chtit navstivit adresar, kam ma pristup jen jiny uzivatel, nemelo by mi to v tom blokovat (myslim tim pouziti Run As).
Takový případ by se pak musel řešit nejdříve ukončením Salamandera a pak teprve spuštěním pod novým oprávněním, a to asi není to pravé ořechové. To platí pro bod 2. i 3.

Posted: 14 Dec 2008, 15:54
by Jan Rysavy
Rozleželo se mi to a také bych hlasoval pro vzájemnou neviditelnost (z hlediska OnlyOneInstance) ve všech třech případech (session, user, integrity level).

Posted: 14 Dec 2008, 16:01
by SelfMan
Jan Rysavy wrote:Rozleželo se mi to a také bych hlasoval pro vzájemnou neviditelnost (z hlediska OnlyOneInstance) ve všech třech případech (session, user, integrity level).
+1

Posted: 17 Dec 2008, 12:50
by k0nelupy
řekl bych taky že nevidět ale měl by se vyjádřit někdo kdo to používá

OT: nebyla by vhodná nějaká utilitka která bude schopná zjistit všechny běžící instance ? a např. jejich stav ? pokud si někdo spustí více instancí pod různými usery atd. tak aby se v tom vyznal :-)

Posted: 17 Dec 2008, 17:26
by Ether
k0nelupy wrote:OT: nebyla by vhodná nějaká utilitka která bude schopná zjistit všechny běžící instance ? a např. jejich stav ? pokud si někdo spustí více instancí pod různými usery atd. tak aby se v tom vyznal :-)
Co je míněno stavem? Jinak já se ve svých instancích vyznám.

Posted: 17 Dec 2008, 19:36
by Jan Rysavy
k0nelupy wrote:nebyla by vhodná nějaká utilitka která bude schopná zjistit všechny běžící instance ? a např. jejich stav ? pokud si někdo spustí více instancí pod různými usery atd. tak aby se v tom vyznal :-)
Task Manager (součást operačního systému) to umí. Na záložce Processes je volba "Show processes from all users". Ve sloupci User Name odlišíte procesy jednotlivých uživatelů. V konfiguraci lze zapnout sloupec Session ID, takže pak vidíte i do které session proces patří.

Posted: 30 Jan 2009, 01:33
by Ether
Nová otázka: mají se vidět navzájem různé verze?

Posted: 30 Jan 2009, 06:44
by Jan Rysavy
V případě změn v AS2.52b1 tomu tak není, museli jsme změnit názvy synchronizačních objektů, umístit je (některé) do jiných namespace a především jim nastavit přístupová práva (pro XP, Vista, ...), takže zachování zpětné kompatibility by byl velký oříšek, který jsme se rozhodli neřešit.

Posted: 30 Jan 2009, 06:46
by dark_spoon
Také jsem hodně přemýšlel a myslím že by nebylo dobré, aby na sebe instance spouštěné z různých úrovní viděli.

Dále mě napadla další věc, tedy doufám že nebudu ušlapán za nějakou nevědomost. Ale bylo by možné zapracovat nějaký mechanizmus, který by automaticky vzhledově odlišil okno AS když bude spuštěn pod administrátorským oprávněním. Například červený rámeček kolem okna nebo tak neco. Pokud už je tato záležitost esistující, a přehlédl jsem ji někde v možnostech nastavení atd..., tak se omlouvám.

Mějte se.

Posted: 30 Jan 2009, 07:03
by Jan Rysavy
Odlišit instance Salamandera lze s menším přispěním uživatele.
Mrkněte do Options > Configuration > Main Window, na položky
"Custom text prefix in main window title" a "Main Window - Icon Color".

Oboje lze specifikovat z command line pomocí parametru. Nově od AS2.52b1 je volba z command line dočasná a nepromítne se do zmíněných položek v konfiguraci.

Jakmile bude Salamander umět načítat konfigurace ze souboru (specifikovaném jako parametr při spuštění), otevřou se další možnosti, jako například změna barvy pozadí panelu.

Posted: 30 Jan 2009, 07:10
by dark_spoon
Děkuji za zcela vyčerpávající odpověď :-)