| Termin | Definicja |
|---|---|
| Zmienna nie widoczna w nowym procesie | Zmienna niewidoczna w nowym procesie wskazuje na uruchomienie go przed odświeżeniem środowiska po dodaniu zmiennej. Jak proces otrzymuje środowisko podczas uruchamianiaZmienna środowiskowa jest parą składającą się z nazwy i wartości, udostępnianą programom przez system operacyjny. Przykładami mogą być W praktyce oznacza to, że program uruchomiony z powłoki dziedziczy środowisko dostępne w tej powłoce, a program uruchomiony przez inny program dziedziczy środowisko przekazane przez jego rodzica. Jeżeli zmienna zostanie dodana dopiero po uruchomieniu powłoki, edytora, usługi albo narzędzia uruchamiającego aplikację, już działający proces może jej nie zawierać. Nowe procesy utworzone przez ten proces również nie otrzymają tej zmiennej, nawet jeśli zmiana została poprawnie zapisana w konfiguracji systemu. Dlaczego odświeżenie ustawień nie zmienia działającego programuDodanie zmiennej środowiskowej do ustawień użytkownika lub systemu nie działa jak natychmiastowa aktualizacja wszystkich procesów. Zmiana trafia do mechanizmu konfiguracyjnego systemu, natomiast istniejące programy zachowują wcześniej otrzymany zestaw zmiennych. Z tego powodu polecenie uruchomione w otwartym oknie terminala może nadal zgłaszać brak zmiennej, podczas gdy nowe okno terminala widzi ją prawidłowo. Podobna sytuacja występuje w graficznym środowisku systemu. Jeżeli aplikacja została uruchomiona przed zmianą konfiguracji, jej proces główny zachowuje stare środowisko. Zamknięcie tylko okna dokumentu może nie wystarczyć, gdy program pozostawia proces działający w tle. Dotyczy to między innymi edytorów kodu, programów uruchamiających inne aplikacje, narzędzi synchronizacyjnych oraz klientów korzystających z usług systemowych. W takim przypadku nowy proces potomny nadal otrzymuje środowisko odziedziczone po wcześniej uruchomionym procesie nadrzędnym. „Niewidoczność” zmiennej nie musi więc oznaczać błędnej nazwy albo braku wartości. Częstą przyczyną jest moment uruchomienia programu. Konfiguracja może być już poprawna, ale proces, w którym wykonywane jest polecenie, nie został ponownie utworzony po zapisaniu zmiany. Rozróżnienie zakresu zmiennej i sposobu uruchamianiaPrzy analizie problemu trzeba ustalić, gdzie zmienna została zdefiniowana. Zmienna ustawiona tylko w bieżącej sesji powłoki zwykle obowiązuje tę sesję oraz procesy uruchomione z niej później. Zmienna zapisana w profilu użytkownika jest dostępna dla nowych procesów uruchamianych w kontekście tego użytkownika, natomiast zmienna systemowa może być przekazywana także procesom działającym z szerszego, systemowego środowiska. Różnice między tymi zakresami zależą od systemu operacyjnego i sposobu uruchamiania programu. W systemach zgodnych z Unixem stan środowiska bieżącej powłoki można sprawdzić między innymi poleceniem Znaczenie ma również dokładna pisownia nazwy. W części środowisk nazwy zmiennych są rozróżniane wielkością liter, a w innych nie. Błąd może wynikać także z dodatkowej spacji, niepoprawnego separatora ścieżki, wartości zapisanej w innym profilu użytkownika albo z uruchomienia programu z uprawnieniami, przy których używany jest inny zestaw ustawień. Dlatego diagnoza powinna obejmować zarówno obecność zmiennej, jak i jej dokładną wartość oraz źródło, z którego aplikacja została uruchomiona. Praktyczna kolejność przywracania zmiennejNajprostszym działaniem jest zamknięcie procesu, który nie widzi zmiennej, a następnie uruchomienie go ponownie po zapisaniu konfiguracji. W przypadku terminala oznacza to zamknięcie całej sesji i otwarcie nowej, a nie tylko ponowne wpisanie polecenia w tym samym oknie. Jeżeli aplikacja ma proces działający w tle, należy zakończyć również ten proces, ponieważ nowe okno może być jedynie interfejsem do starej instancji. Po ponownym uruchomieniu trzeba sprawdzić zmienną bezpośrednio w środowisku aplikacji albo w programie uruchamiającym. Jeżeli problem nadal występuje, należy porównać kilka sytuacji: nowy terminal uruchomiony jako zwykły użytkownik, terminal uruchomiony z podwyższonymi uprawnieniami oraz aplikację uruchomioną z menu systemowego. Różny wynik wskazuje zwykle na rozbieżność między środowiskiem użytkownika i systemu albo na inny mechanizm startowy. W przypadku usług i zadań automatycznych istotne jest konto, na którym działa proces, ponieważ usługa może nie korzystać z profilu osoby, która zmieniła zmienną w ustawieniach graficznych. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów stacjonarnych PC, w których problemy z uruchamianiem programów mogą wynikać między innymi z nieprawidłowej konfiguracji systemu, uszkodzeń oprogramowania albo błędów związanych z działaniem podzespołów. Podczas sprawdzania takiego zgłoszenia można odtworzyć sposób uruchamiania aplikacji, porównać środowisko różnych procesów i ustalić, czy przyczyną jest brak odświeżenia konfiguracji, niewłaściwy zakres zmiennej, czy inny błąd systemowy. |