Bug 34967

Summary: Запретить запуск нескольких копий
Product: Sisyphus Reporter: Антон Мидюков <antohami>
Component: livecd-installAssignee: Michael Shigorin <mike>
Status: REOPENED --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: boyarsh, mike, sem
Version: unstable   
Hardware: all   
OS: Linux   

Description Антон Мидюков 2018-05-30 13:02:03 MSK
В лайве можно случайно запустить инсталлятор дважды. При этом даже закрытие одного из инсталляторов уже не исправит ситуацию, установить не удастся. Во время инсталляции на шаге 5 ничего не отображается, хотя копирование, видимо идёт. После окончания копирования уже ничего сделать нельзя, перехода на следующий шаг не происходит.

Поэтому предлагаю при запуске создавать lock файл, который будет блокировать вторичный запуск инсталлятора.

Правда тут есть вопрос, когда этот lock файл удалять? После успешной установки его точно удалять не надо. Также под вопросом: если установку прервать, то второй раз установить успешно возможно или нет (не проверял, но проверю).

И надо, чтобы создавалось диалоговое окно с сообщением, что инсталлятор уже был запущен.
Comment 1 Антон Мидюков 2018-05-30 13:14:42 MSK
Хм. А не получается запустить дважды. Это, оказывается, надо было очень постараться, чтоб успеть запустить вторую копию :-)
Comment 2 Антон Мидюков 2018-10-01 18:43:02 MSK
Не, всё-таки иногда получается в некоторых DE (Mate), если перед этим выделить значок и щёлкнуть два раза. Или три раза щёлкнуть по значку.

Вот только побороть такое не так уж просто. Если добавить в начало скрипта /usr/sbin/livecd-install:

sleep 1 ms

То при таком нажатии окна установки будут появляться и тут же закрываться, что тоже совсем не то, что хотелось. Но всё же лучше, так как даже закрыв лишние окна процесс установки завершится с ошибкой.

Аналогичный эффект получается, если грепать запущенный процесс:

pgrep alterator-wizard > /dev/null && exit

Потому раз нет разницы, можно и sleep использовать.
Comment 3 Антон Мидюков 2023-09-14 19:34:05 MSK
livecd-install в регулярках не используется около года уже. Поэтому этот баг больше не является багом регулярок.