Как я показываю терминал после того, как сценарий будет выполняться при запуске?

Я выполняю сценарий удара через пользовательский созданный сервис. При пользовательском входе в систему выполняется сценарий. Я могу проверить, что программа выполняет с PS-ef команду.

Единственная вещь, которую я хочу иметь, происходит, я хочу, чтобы Терминал открыл и отобразил вывод выполнения сценария.

Я плохо знаком с Linux. Все еще узнавание вещей. Не очень хороший опыт до сих пор.

Под управлением Ubuntu 18.04.

0
задан 8 August 2018 в 17:09

2 ответа

Позвольте мне использовать этот простой пример для демонстрации одного способа наличия сделанного:

  1. Два сценария:

    • launcher.sh, и
    • sample.sh
  2. Содержание сценариев:

    • launcher.sh:

      #!/usr/bin/env bash
      gnome-terminal --working-directory="/home/georgek/Documents/askubuntu" -- '--rcfile ./setup.bash ./launcher.sh'
      
    • sample.sh:

      #!/usr/bin/env bash
      du -h ./; read line;
      
  3. Вызов sample.sh от launcher.sh как это: launcher.sh и это передаст файл sample.sh терминалу, примечание: эти read line предотвращает gnome-terminal от closig, пока Вы не нажимаете , ВВОДЯТ ключ. Измените как он, как Вам нравится.

ПРИМЕЧАНИЕ: - -- предпочтен [1 113], как сообщается ударом - --working-directory="/home/georgek/Documents/askubuntu", говорит терминал команде выполнения из этого каталога.

  • Использование этот файл для установки переменных, от [1 115]:

    - rcfile файл Выполняют команды из файла вместо файла инициализации в масштабе всей системы/etc/bash.bashrc и стандартного персонального файла инициализации ~/.bashrc, если оболочка является интерактивной (см. ВЫЗОВ ниже).

0
ответ дан 13 April 2019 в 17:55

Лучший подход должен был бы установить screen или byobu для более хорошего UI и запустить Ваш скрипт там:

screen -S sessionname -d -m /path/to/script

Это позволит Вам повторно прикрепить к сессии с [1 110]

screen -r sessionname

Рассмотрение того, что Вы запускаете его с systemd сервиса, Вы, возможно, должны иметь две сделанные вещи: или позвольте многопользовательскую сессию для всех или настройте отдельный доступ только для Вашего имени пользователя. Это должно будет иметь пользовательский файл конфигурации и передачу что экранировать с -c флаг.

См. также:

0
ответ дан 13 April 2019 в 17:55

Другие вопросы по тегам:

Похожие вопросы: