Debian. Завершение работы.

Discussion in 'Болталка' started by DartPhoenix, 9 Jul 2019.

  1. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    1) systemctl ето и есть systemd
    2) пилить скрипты и есть решение проблемы в линуксе.
    3) предложи что нибудь, вместо выебнутся не относящимся к делу фактом.
     
    _________________________
  2. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,019
    Likes Received:
    7,618
    Reputations:
    24
    Я чот. думал есть стандартное решение.

    Короче сделал так:

    Сей скрипт запихнул в /etc/init.d и закинул символические ссылки в /etc/rc0.d и /etc/rc6.d
    Вроде - как фунциклирует :)
    Code:
    #!/bin/bash
    # закрыть все окна
    
    ID_LIST=$(wmctrl -l | cut -f1 -d ' ')
    
    for i in $ID_LIST
    do
      wmctrl -ic "$i"
    done
    
    # подождать закрытия (можно добавить ключик и не ждать... но тогда зачем вообще это все :) )
    while test $ID_LIST
    do
      sleep 0.1
      ID_LIST=$(wmctrl -l | cut -f1 -d ' ')
    done
    
    UPD: а может и не фунциклирует... х/з. Посмотрим еще.
     
    #22 DartPhoenix, 10 Jul 2019
    Last edited: 10 Jul 2019
  3. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,019
    Likes Received:
    7,618
    Reputations:
    24
    Короче в гробу я видал эти конфиги !!! :)
    Не помогли танцы с бубном. Надо по хорошему однажды посмотреть как вся эта херня работает начиная прямо с init... но энтузиазьма пока нету.

    Поэтому просто сделаем пока так:

    Code:
      1 #!/bin/bash
      2 # закрыть все окна
      3
      4 ID_LIST=$(wmctrl -l | cut -f1 -d ' ')
      5 ACTIVE_WND=$(xdotool getactivewindow)
      6   
      7 #echo $ACTIVE_WND
      8   
      9 for i in $ID_LIST
     10 do
     11   i_dec=$(printf "%d\n" $i)
     12 
     13   if [ $i_dec != $ACTIVE_WND ]
     14   then
     15     wmctrl -ic "$i"
     16   fi 
     17 done
     18 
     19 cnt=3
     20 while [ $cnt -gt 1 ]
     21 do
     22   #echo $cnt
     23   ID_LIST=$(wmctrl -l | cut -f1 -d ' ')
     24   cnt=$(echo $ID_LIST | wc -w)
     25   sleep 0.1
     26 done
     27 
     28 sudo shutdown -h now
    
     
  4. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    582
    Reputations:
    52
    Команда shutdown итак завершает работу по нормальному. После неё все процессы получают SIGTERM и некоторое время на завершение работы. А кто не успел тот опоздал. Если после отведённого время процесс не завершается то он убивается через SIGKILL.

    Процесс выключения описан тут: https://www.computerhope.com/unix/ushutdow.htm

    Если твой FF восстанавливается после некорректного завершения — значит ему не хватило времени на завершение работы.
    За время отведённое на завершение работы отвечает параметр -t команды shutdown: https://www.opennet.ru/man.shtml?topic=shutdown&category=8&russian=2

    Если ты завершаешь работу командой shutdown то просто указывай таймаут на завершение. Если через гуи то это надо смотреть конфиг твоего десктопного окружения.
     
    crlf and quite gray like this.
  5. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    не совсем понял, ребут/шутдаун делается напрямую из консоли/терминала или из гуи? Если из консоли от рута тогда делай через systemctl reboot
    по теме: https://manpages.debian.org/stretch/systemd/systemd-shutdown.8.en.html

    Code:
    root@hdh13:/lib/systemd/system# cat systemd-reboot.service
    [Unit]
    Description=Reboot
    Documentation=man:systemd-halt.service(8)
    DefaultDependencies=no
    Requires=shutdown.target umount.target final.target
    After=shutdown.target umount.target final.target
    
    [Service]
    Type=oneshot
    ExecStart=/bin/systemctl --force reboot
    Возможно --force тут даже лишняя, без него возможно фф будет спрашивать что ему делать. И кстати в фф есть "Восстанавливать предыдущую сессию" может его стоит убрать. Ну и если это все не поможет тогда смотреть journalctl фильтровать по дате/pid

    p.s. init.d в 2019 году слегка неактуально) лет так 5 уже
     
    _________________________
    DartPhoenix likes this.
  6. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,019
    Likes Received:
    7,618
    Reputations:
    24
    Из гуи. Фаерфокс же под иксами.
    Я прост. никогда особо не расчехлял как загрузка/выключение производится. Это надо потрейсить пихая скрипты в разные места дабы узнать когда они соизволят выполняться.

    В данном случае этот скрипт требуется выполнять как можно раньше иначе смысла от него никакого нет.

    ... либо разобрать сурц systemctl.
    UPD: но это походу надолго. Наш тернистый путь ведет в sd-bus.c в sd_bus_message_new_method_call и sd_bus_call. А дальше... надо знать о системе побольше чтобы понять что за херня там происходит :)
     
    #26 DartPhoenix, 11 Jul 2019
    Last edited: 11 Jul 2019
  7. quite gray

    quite gray Banned

    Joined:
    8 Dec 2016
    Messages:
    370
    Likes Received:
    1,615
    Reputations:
    3
    Подрываю тему. Не то чтобы поинтересоваться здоровьем соседа... Ну как вообще? Не зря ли я о птичках... Хм. Птички-синички. Мелко. Где Йожь и у него в кармане ножь!?
    Там это. Религиозная тема всплыла Я знаю, что Феня в стороне если что полыхнёт на форуме. Или мне это всё снится?
     
  8. quite gray

    quite gray Banned

    Joined:
    8 Dec 2016
    Messages:
    370
    Likes Received:
    1,615
    Reputations:
    3
    Так ты московский? :-D Так бы сразу и представился :-D :-D
     
  9. quite gray

    quite gray Banned

    Joined:
    8 Dec 2016
    Messages:
    370
    Likes Received:
    1,615
    Reputations:
    3
    Если вам не нравится религиозная тема, то... Можно на базарок дёрнуть модератора b3. Что-то он не очень пользуется уважением форумчан. Как и Админ. Это всё видно. Но. нужна ли мне лично эта революция на форуме? Это раз. Кто спонсирует? Это два. Историю помним и знаем. Но не читали, мы её делали :-D :-D :-D
    За сим, пожалуй прощаюсь с форумом не надолго и без бана. Это радует.

     
  10. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,019
    Likes Received:
    7,618
    Reputations:
    24
    Скоко можно бухать уже ? :)
     
    Triton_Mgn likes this.
  11. user100

    user100 Moderator

    Joined:
    24 Dec 2011
    Messages:
    4,497
    Likes Received:
    16,632
    Reputations:
    373
    До 2 сентября видимо;)
     
    _________________________
    DartPhoenix likes this.
  12. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,019
    Likes Received:
    7,618
    Reputations:
    24
    Главное 3-го не забыть перевернуть календарь, а то хреново будет.
     
    user100 likes this.
  13. user100

    user100 Moderator

    Joined:
    24 Dec 2011
    Messages:
    4,497
    Likes Received:
    16,632
    Reputations:
    373
    Бородатый мужик придет, перевернет :cool:
     
    _________________________
    Triton_Mgn and DartPhoenix like this.
  14. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,644
    Likes Received:
    5,702
    Reputations:
    51
  15. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,644
    Likes Received:
    5,702
    Reputations:
    51
    Дык над тобой посмеяться можно, бан все прошли , и ты пройдешь если с нами останешься.Куды пошел? Что ты прям.
     
    quite gray likes this.
  16. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    582
    Reputations:
    52
    Не, я из России.
     
  17. quite gray

    quite gray Banned

    Joined:
    8 Dec 2016
    Messages:
    370
    Likes Received:
    1,615
    Reputations:
    3
    Пока главврач не выйдет из отпуска :-D
     
    Triton_Mgn and Spinus like this.