фар ни у кого при хибернации не прячется?

Здесь можно сообщить о найденных багах в Far.
Post Reply
lvmm
Posts: 119
Joined: Thu 15 Apr, 2021 14:31
Has thanked: 8 times
Been thanked: 3 times

фар ни у кого при хибернации не прячется?

Post by lvmm »

Последнее время несколько раз казалось, что после хибернации пропадает запущенный фар. Внимания особо не обращал, и сам мог ошибиться, но сейчас полез в тасклист - а они все там, штук 10 запущенных висит, только все невидимые. Судя по времени, началось после апгрейда с 5888 на 5959. Я одинок?
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

фар ни у кого при хибернации не прячется?

Post by HaRT »

У вас Фар запускается через традиционную консоль (ConHost) или через Windows Terminal? Другие окна conhost/wt в результате спячки системы не прячутся, только Фар?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

фар ни у кого при хибернации не прячется?

Post by buniak_a_h »

У меня сначала (после перехода на Windows 10) была проблема, что многие приложения снимались (не прятались, а совсем снимались) после пары суток (или даже меньше) непрерывной работы. Было обидно за Миранду, скайп и пр.. Потом я нашёл, где это настраивается. Увы, уже не помню …
lvmm
Posts: 119
Joined: Thu 15 Apr, 2021 14:31
Has thanked: 8 times
Been thanked: 3 times

фар ни у кого при хибернации не прячется?

Post by lvmm »

Ok, тогда подробнее, потому что там не все так просто: идет битва с UAC в условии доменных политик, кто знает - посочувствует. Чтобы избежать вопросов UAC, передаем выполнение команд, требующих админского доступа, таску sudo (task scheduler) в скрипте %userprofile%\temp\sudo.cmd. Таск этот скрипт запускает с максимальными привилегиями (<RunLevel>HighestAvailable</RunLevel>), а после выполнения - удаляет

Code: Select all

  <Actions Context="Author">
    <Exec>
      <Command>cmd</Command>
      <Arguments>/min /c %userprofile%\temp\sudo.cmd &gt; %userprofile%\temp\sudo.log</Arguments>
    </Exec>
    <Exec>
      <Command>cmd</Command>
      <Arguments>/min /c del /q %userprofile%\temp\sudo.cmd</Arguments>
    </Exec>
  </Actions>
так UAC с вопросами не пристает. Этот таск деграется из раппера sudo.cmd

Code: Select all

@echo off
set cmd=%userprofile%\temp\sudo.cmd
set log=%userprofile%\temp\sudo.log
:wait-run
schtasks /query /tn sudo|find "Running"
if errorlevel 1 goto run
echo %time% queued...
timeout /t 1 >nul
goto wait-run
:run
echo %* > %cmd%
schtasks /run /tn sudo >nul
:wait-end
if not exist %cmd% goto end
echo %time% running...
timeout /t 1 >nul
goto wait-end
:end
type %log%
а собственно хибернация запускается скриптом hibernate.cmd

Code: Select all

@echo off
if .%1==.y goto doit
if .%1==./y goto doit
if .%1==.-y goto doit
echo About to hibernate.
pause
:doit
sudo psshutdown -h -t 0
psshutdown - из sysinternals.

Теперь собираем все это вместе: когда hibernate.cmd запускается из фара, именно этот экземпляр фара после выхода из хибернации прячется, те в виндовом таск менеджере попадает в background tasks, а process explorer из sysinternals говорит про него, что no visible windows. Другие запущенные в этот момент фары не пропадают, если через sudo.cmd запустить что-то отличное от хибернации, все будет нормально, и проявляется с 5959, но не с 5888. Windows 10, фар запускается из .lnk файла из меню (опеншелл), что такое windows terminal я не знаю, но, по-видимому, conhost, потому что у фара conhost.exe висит как чайлд. Легаси консоль - так надо.
Last edited by lvmm on Fri 18 Mar, 2022 07:49, edited 3 times in total.
2useven10
Posts: 5205
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

фар ни у кого при хибернации не прячется?

Post by 2useven10 »

start sudo psshutdown -h -t 0 не пробовали?
lvmm
Posts: 119
Joined: Thu 15 Apr, 2021 14:31
Has thanked: 8 times
Been thanked: 3 times

фар ни у кого при хибернации не прячется?

Post by lvmm »

Ну я же сказал, что на другие запущенные в момент хибернации фары не влияет, поэтому и так тоже получится. Но это воркэраунд, баг он не исправит.
2useven10
Posts: 5205
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

фар ни у кого при хибернации не прячется?

Post by 2useven10 »

lvmm wrote: Thu 17 Mar, 2022 14:39 Судя по времени, началось после апгрейда с 5888 на 5959. Я одинок?
Правильно я понимаю, что проверку указанных версий far сейчас вы не делали?
Т.е. изменение поведения из-за обновления windows а не far не было исключено.
lvmm
Posts: 119
Joined: Thu 15 Apr, 2021 14:31
Has thanked: 8 times
Been thanked: 3 times

фар ни у кого при хибернации не прячется?

Post by lvmm »

На момент написания первого письма - не делал, но ко второму проверил: на 5888 не воспроизводится.
2useven10
Posts: 5205
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

фар ни у кого при хибернации не прячется?

Post by 2useven10 »

Ну, даже допуская баг в фар...
Условия воспроизведения очень вычурны, обходится просто, в changelog ничего подозрительного нет.
Пропадание консоли - это скорее всего умирание conhost (сам фар жив).

Не думаю что кто-то станет тратить на это время.
Post Reply

Return to “Глюки и баги”