Терминал закрывается

Discussion in 'Linux, Freebsd, *nix' started by triblekill, 11 Mar 2021.

  1. triblekill

    triblekill Member

    Joined:
    21 Aug 2011
    Messages:
    351
    Likes Received:
    94
    Reputations:
    1
    Помогите mate-terminal закрывается после выполнения bash скрипта что только не пробовал и read и sleep и $SHELL --hold всё равно напрочь игнорирует.
    bash скрипт запускает другую стороннюю программу например
    start.bash имеет такой вид
    Code:
    #!/bin/bash
    cd /program
    chmod +x program.sh
    mate-terminal -e "./program.sh"
    
     
  2. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    Ну если у тебя баш - то в конце просто открой его еще раз попробуй.
    Т.е. допиши строчку "bash". И все вроде.
     
    #2 DartPhoenix, 11 Mar 2021
    Last edited: 11 Mar 2021
    CyberTro1n likes this.
  3. triblekill

    triblekill Member

    Joined:
    21 Aug 2011
    Messages:
    351
    Likes Received:
    94
    Reputations:
    1
    Так не работает тоже (
    Code:
    #!/bin/bash
    cd /program
    chmod +x program.sh
    mate-terminal -e "./program.sh;bash"
    
     
  4. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,482
    Reputations:
    25
    Может оно у тебя с ошибкой вываливается ? Так пробовал ?
    Code:
    mate-terminal -e "bash -с ./program.sh;bash"
    Я на konsole тестил - все ок. mate-terminal затестить не могу ибо в репозитарии нет а компилить лениво :)
     
  5. fandor9

    fandor9 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    630
    Likes Received:
    1,050
    Reputations:
    47
    Попробуйте запустите с помощью strace т.е.
    Code:
    strace /program-dir/program.sh
    Процесс/прога может узнать номер процесса своего родителя ($PPID) и после выполнения убить процесс своего предка ;)
    Для теста такой вот баш-скрипт:
    Code:
    #!/bin/bash
    echo "My process ID: $$"
    echo "Parent process ID: $PPID"
    #echo "Kill my process $$"
    #kill $$
    parent_name=$(ps -p $PPID -o comm=)
    echo "Kill parent process $parent_name $PPID"
    kill -9 $PPID
    echo "End"
    exit
    если запускать баш-скрипт сразу из консоли "/tmp/test.sh", то он закрывает консоль, если запускать с "strace /tmp/test.sh", то процесс закилит strace, но консоль останется.
    Так-же можете попробовать запустить просто mate-terminal и уже в нём от руки запустить ваш скрипт/прогу
    Code:
    mate-terminal
    -> cd /program-dir/
    -> chmod +x /ptogram.sh
    -> ./program.sh
    -> strace ./program.sh
    
     
    CyberTro1n and crlf like this.
  6. triblekill

    triblekill Member

    Joined:
    21 Aug 2011
    Messages:
    351
    Likes Received:
    94
    Reputations:
    1
    Блин там есть в профиле настройки
    закрыть терминал
    оставаться открытым
    и ещё 1 пункт
    как бы просто по умолчанию держать открытым поставить я не понимаю в каком конфиге это хранится
     
  7. fandor9

    fandor9 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    630
    Likes Received:
    1,050
    Reputations:
    47
    https://ubuntu-mate.community/t/where-does-mate-terminal-save-profiles/8347/2
    Code:
    dconf write /org/mate/terminal/profiles/default/exit-action "'hold'"
     
  8. triblekill

    triblekill Member

    Joined:
    21 Aug 2011
    Messages:
    351
    Likes Received:
    94
    Reputations:
    1