Автор Тема: Запуск консольных скриптов из .desktop-ярлыков.  (Прочитано 3773 раз)

Оффлайн hasculdr

  • Участник
  • *
  • Сообщений: 682
Если скрипт, выполняющийся в Ruby, если запускать в командной строке (например, $ ruby /home/user/Документы/bin/script.rb) - то после завершения скрипта окно терминала (xfce4-terminal 0.6.3) остается открытым, и можно видеть необходимую информацию до тех пор, пока сам не закроешь окно. Каждый раз перетаскивать разные скрипты в окно терминала или прокручивать историю ввода мне неудобно, т.к. кроме скриптов там запоминается куча других команд, я хочу запускать скрипты через .desktop-ярлыки. Но при таком запуске после завершения скрипта окно терминала закрывается. Можно сделать так, чтобы оно оставалось открытым?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Можно. При чём несколькими способом.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 167
    • Домашняя страница
Если скрипт, выполняющийся в Ruby, если запускать в командной строке (например, $ ruby /home/user/Документы/bin/script.rb) - то после завершения скрипта окно терминала (xfce4-terminal 0.6.3) остается открытым, и можно видеть необходимую информацию до тех пор, пока сам не закроешь окно. Каждый раз перетаскивать разные скрипты в окно терминала или прокручивать историю ввода мне неудобно, т.к. кроме скриптов там запоминается куча других команд, я хочу запускать скрипты через .desktop-ярлыки. Но при таком запуске после завершения скрипта окно терминала закрывается. Можно сделать так, чтобы оно оставалось открытым?
Цитировать
Exec=xterm -hold <команда>
Андрей Черепанов (cas@)

Оффлайн hasculdr

  • Участник
  • *
  • Сообщений: 682
Exec=xfce4-terminal -hold <ruby /home/user/Документы/bin/script.rb>

Ошибка выполнения дочернего процесса
Не удалось выполнить процесс-потомок «Exec=xfce4-terminal» (Нет такого файла или каталога)

upd. Если запускать в командной строке - то "bash: ruby: Нет такого файла или каталога"
« Последнее редактирование: 30.09.2015 10:32:56 от hasculdr »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 167
    • Домашняя страница
Exec=xfce4-terminal -hold <ruby /home/user/Документы/bin/script.rb>

Ошибка выполнения дочернего процесса
Не удалось выполнить процесс-потомок «Exec=xfce4-terminal» (Нет такого файла или каталога)

upd. Если запускать в командной строке - то "bash: ruby: Нет такого файла или каталога"
Угловые скобки не нужны:

Exec=xfce4-terminal -hold 'ruby /home/user/Документы/bin/script.rb'
P.S. Я не уверен, что xfce4-terminal поддерживает параметр -hold. Вызывайте в терминале xfce4-terminal --help и читайте. Или используйте xterm.
Андрей Черепанов (cas@)

Оффлайн hasculdr

  • Участник
  • *
  • Сообщений: 682
В xfce4-terminal есть параметр -H. Ваш пример с xterm не срабатывает с точно такой же ошибкой.
Exec=xfce4-terminal -H 'ruby /home/user/Документы/bin/script.rb' нужно вписывать в поле "Команда" свойств .desktop-файла?
Цитировать
Можно. При чём несколькими способом.
Какими, если не секрет?

Оффлайн hasculdr

  • Участник
  • *
  • Сообщений: 682
Убрал Exec, добавил ключик -x - выполняет оставшуюся часть команды в терминале. Получилось так:
xfce4-terminal -H -x ruby /home/user/Документы/bin/script.rb

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Какими, если не секрет?

Ну одну ветку решений - уже сказали, причём терминал можно менять - от xterm до konsole.

Второй вариант - создать desktop файл примерно такого вида:

[Desktop Entry]
Comment=..
Comment[ru]=...
Exec[$e]=/usr/bin/myscipt
GenericName=...
GenericName[ru]=...
Icon=2ED2.....
Name=MyName
Name[ru]=Мой имя
Path[$e]=/my_path
StartupNotify=true
Terminal=true
TerminalOptions=\s--noclose
Type=Application

PS Создал в TDE правой кнопкой мыши.