I am trying to launch a new gnome-terminal with a command executed
When I execute gnome-terminal
, a new terminal opens smoothly.
Now when I run this
gnome-terminal -- "zsh; echo hello"
I expect a new terminal with zsh to open, with hello printed.
But what I get is a new terminal with this:
There was an error creating the child process for this terminal
Failed to execute child process “zsh; echo hello” (No such file or directory)
Some important results
Please take a look
❯ gnome-terminal -e "echo hello"
# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
❯ gnome-terminal --command "echo hello"
# Option “--command” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
Executing the following lines, does something like some ghost moves on the screen, but produces no visible output
❯ gnome-terminal --window -- echo hello
❯ gnome-terminal --tab -- echo hello
❯ gnome-terminal --tab -- echo hello
❯ gnome-terminal --tab --wait -- echo hello
Where am I making mistake ? How can do do my intended job ie launch a new zsh terminal with hello printed, and waiting for next command
Я использую Ubuntu начиная с версии 10.04 и считаю ее более дружественной по сравнению с Windows. Прямо сейчас я использую «Precise 12.04». Я создал много пользовательских модулей запуска для скриптов bash, и у меня никогда не было проблем до вчерашнего дня.
Я установил программный пакет с несколькими исполняемыми файлами. Основной исполняемый файл abaqus
находится в optsoftwaresname
и является символической ссылкой на исполняемый файл abq610i
в /opt/softwaresname/executables/
.
Основной exe abaqus
требует некоторых аргументов командной строки. Я использую аргумент cae
, (то есть abaqus cae
), но с другой командой, чтобы визуализировать графику в лучшем режиме, поэтому последний вызов: XLIB_SKIP_ARGB_VISUALS=1 abaqus cae
Я сделал псевдоним для этой длинной команды в файле .bash_rc
как:
alias abaquscae="XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
Все отлично работало, так как псевдоним запускает программное обеспечение. Будучи ленивым чемпионом, я подумал о создании для этого каирского дока. Поэтому я ввел abaquscae
в поле «Команда запуска по клику» и проверил «Запустить в терминале». Однако, к моему ужасу, при нажатии на панель запуска он выдал ошибку ::
There was an error creating the child process for this terminal
Failed to execute child process "abaquscae" (No such file or directory)
Следовательно, я написал небольшой файл сценария bash «abaquscae.sh»:
#!/bin/sh
"XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
и сохранил в , сделал его исполняемым, и после запуска в оболочке bash я снова получил похожую ошибку, а именно:
./abaquscae.sh: 2: ./abaquscae.sh: XLIB_SKIP_ARGB_VISUALS=1 abaqus cae: not found
Теперь я полностью потерян, я перепробовал много трюков, например
1 — удаление запятых в скрипте bash,
2 — создание его dos2unix
,
3 — использование полного пути к исполняемому файлу
, но этот скрипт не выполняется терминал bash.
ПРОБЛЕМА:
Команда (а также ее псевдоним) отлично работают в терминале bash, однако, когда они запускаются через какой-то другой канал (например, скрипты / средства запуска), Терминал с треском не может их распознать ..
Если у любого эксперта есть совет / информация о том, как решить эту проблему, пожалуйста, поделитесь. Я буду очень благодарен.
1 Answer
Sorted by:
Reset to default
1
It looks like you entered terminal
in the configuration in the place where you should write the program name that should run inside the terminal window.
Normally, that is a input field below the name ot the terminal profile you are editing.
/bin/bash
would be good, if you want to use bash
normally.
You can leave it empty, then a default is choosen — which is probably bash
too.
answered Jul 9, 2015 at 8:03
Volker SiegelVolker Siegel
16.5k4 gold badges51 silver badges77 bronze badges
Not the answer you’re looking for? Browse other questions tagged
- terminal
or ask your own question.
Not the answer you’re looking for? Browse other questions tagged
- terminal
or ask your own question.
1 Answer
Sorted by:
Reset to default
1
It looks like you entered terminal
in the configuration in the place where you should write the program name that should run inside the terminal window.
Normally, that is a input field below the name ot the terminal profile you are editing.
/bin/bash
would be good, if you want to use bash
normally.
You can leave it empty, then a default is choosen — which is probably bash
too.
answered Jul 9, 2015 at 8:03
Volker SiegelVolker Siegel
16.5k4 gold badges51 silver badges77 bronze badges
Not the answer you’re looking for? Browse other questions tagged
- terminal
or ask your own question.
Not the answer you’re looking for? Browse other questions tagged
- terminal
or ask your own question.
- Печать
Страницы: [1] Вниз
Тема: Запуск команды в gnome-terminal (Прочитано 3805 раз)
0 Пользователей и 1 Гость просматривают эту тему.
rvkdw
drkwv@drkwv-ubuntu:~$ gnome-terminal —command «cd ..»
вылетает с ошибкой
«Произошла ошибка при создании дочернего процесса для этого терминала»
1) Что я делаю не так?
2) Как надо это делать?
До этого устанавливал NautilusSVN и потом его удалял по инструкциям с сайта разработчика. Может ли эта ошибка вылетать из-за установки NautilusSVN?
« Последнее редактирование: 30 Марта 2009, 16:15:14 от rvkdw »
Psy[H[]
можно попробовать:
gnome-terminal -x blablabla
но не для всех работает. Для sudo, например, опять же вылетает ошибка с дочерним процессом.
Хочу gnome-terminal прикрутить к gmrun, там нужно указать команду терминала, к которой присовокупляется вводимая команда. Сейчас прописал gnome-terminal -x но не для всего работает.
Я знаю только то, что ничего не знаю.
rvkdw
можно попробовать:
gnome-terminal -x blablabla
но не для всех работает. Для sudo, например, опять же вылетает ошибка с дочерним процессом.
Хочу gnome-terminal прикрутить к gmrun, там нужно указать команду терминала, к которой присовокупляется вводимая команда. Сейчас прописал gnome-terminal -x но не для всего работает.
Дело в том, что я монтирую папку через sshfs, но отмонтироваться, по неясным мне причинам, она не хочет (только через sudo). Для того, чтобы ее примонтировать, я написал скрипт на ruby, который работает. Однако, чтобы отмонтировать нужно набрать пароль для sudo. Можно ли набирать пароль для sudo не через терминал?
gnome-terminal -x также вываливается.
ArcFi
nautilus sftp://$USER@192.168.1.2
+ настроить доступ по ключам или пароль в менеджер паролей добавить.
Так не проще будет? Или я не так понял?
Veter
Можно ли набирать пароль для sudo не через терминал?
gksudo
rvkdw
nautilus sftp://$USER@192.168.1.2
+ настроить доступ по ключам или пароль в менеджер паролей добавить.
Так не проще будет? Или я не так понял?
Я об этой возможности не знал.
Можно ли набирать пароль для sudo не через терминал?
gksudo
Спасибо.
Psy[H[]
а как все-таки сделать чтобы gnome-terminal не выдавал ошибок дочерних процессов?
Я знаю только то, что ничего не знаю.
- Печать
Страницы: [1] Вверх
Я использую Ubuntu начиная с версии 10.04 и считаю ее более дружественной по сравнению с Windows. Прямо сейчас я использую «Precise 12.04». Я создал много пользовательских модулей запуска для скриптов bash, и у меня никогда не было проблем до вчерашнего дня.
Я установил программный пакет с несколькими исполняемыми файлами. Основной исполняемый файл abaqus
находится в optsoftwaresname
и является символической ссылкой на исполняемый файл abq610i
в /opt/softwaresname/executables/
.
Основной exe abaqus
требует некоторых аргументов командной строки. Я использую аргумент cae
, (то есть abaqus cae
), но с другой командой, чтобы визуализировать графику в лучшем режиме, поэтому последний вызов: XLIB_SKIP_ARGB_VISUALS=1 abaqus cae
Я сделал псевдоним для этой длинной команды в файле .bash_rc
как:
alias abaquscae="XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
Все отлично работало, так как псевдоним запускает программное обеспечение. Будучи ленивым чемпионом, я подумал о создании для этого каирского дока. Поэтому я ввел abaquscae
в поле «Команда запуска по клику» и проверил «Запустить в терминале». Однако, к моему ужасу, при нажатии на панель запуска он выдал ошибку ::
There was an error creating the child process for this terminal
Failed to execute child process "abaquscae" (No such file or directory)
Следовательно, я написал небольшой файл сценария bash «abaquscae.sh»:
#!/bin/sh
"XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
и сохранил в , сделал его исполняемым, и после запуска в оболочке bash я снова получил похожую ошибку, а именно:
./abaquscae.sh: 2: ./abaquscae.sh: XLIB_SKIP_ARGB_VISUALS=1 abaqus cae: not found
Теперь я полностью потерян, я перепробовал много трюков, например
1 — удаление запятых в скрипте bash,
2 — создание его dos2unix
,
3 — использование полного пути к исполняемому файлу
, но этот скрипт не выполняется терминал bash.
ПРОБЛЕМА:
Команда (а также ее псевдоним) отлично работают в терминале bash, однако, когда они запускаются через какой-то другой канал (например, скрипты / средства запуска), Терминал с треском не может их распознать ..
Если у любого эксперта есть совет / информация о том, как решить эту проблему, пожалуйста, поделитесь. Я буду очень благодарен.
- Печать
Страницы: [1] Вниз
Тема: Запуск команды в gnome-terminal (Прочитано 3811 раз)
0 Пользователей и 1 Гость просматривают эту тему.
rvkdw
drkwv@drkwv-ubuntu:~$ gnome-terminal —command «cd ..»
вылетает с ошибкой
«Произошла ошибка при создании дочернего процесса для этого терминала»
1) Что я делаю не так?
2) Как надо это делать?
До этого устанавливал NautilusSVN и потом его удалял по инструкциям с сайта разработчика. Может ли эта ошибка вылетать из-за установки NautilusSVN?
« Последнее редактирование: 30 Марта 2009, 16:15:14 от rvkdw »
Psy[H[]
можно попробовать:
gnome-terminal -x blablabla
но не для всех работает. Для sudo, например, опять же вылетает ошибка с дочерним процессом.
Хочу gnome-terminal прикрутить к gmrun, там нужно указать команду терминала, к которой присовокупляется вводимая команда. Сейчас прописал gnome-terminal -x но не для всего работает.
Я знаю только то, что ничего не знаю.
rvkdw
можно попробовать:
gnome-terminal -x blablabla
но не для всех работает. Для sudo, например, опять же вылетает ошибка с дочерним процессом.
Хочу gnome-terminal прикрутить к gmrun, там нужно указать команду терминала, к которой присовокупляется вводимая команда. Сейчас прописал gnome-terminal -x но не для всего работает.
Дело в том, что я монтирую папку через sshfs, но отмонтироваться, по неясным мне причинам, она не хочет (только через sudo). Для того, чтобы ее примонтировать, я написал скрипт на ruby, который работает. Однако, чтобы отмонтировать нужно набрать пароль для sudo. Можно ли набирать пароль для sudo не через терминал?
gnome-terminal -x также вываливается.
ArcFi
nautilus sftp://$USER@192.168.1.2
+ настроить доступ по ключам или пароль в менеджер паролей добавить.
Так не проще будет? Или я не так понял?
Veter
Можно ли набирать пароль для sudo не через терминал?
gksudo
rvkdw
nautilus sftp://$USER@192.168.1.2
+ настроить доступ по ключам или пароль в менеджер паролей добавить.
Так не проще будет? Или я не так понял?
Я об этой возможности не знал.
Можно ли набирать пароль для sudo не через терминал?
gksudo
Спасибо.
Psy[H[]
а как все-таки сделать чтобы gnome-terminal не выдавал ошибок дочерних процессов?
Я знаю только то, что ничего не знаю.
- Печать
Страницы: [1] Вверх
Я пытаюсь запустить новый gnome-терминал с выполненной командой
Когда я выполняю gnome-terminal
, новый терминал открывается плавно.
Теперь, когда я запускаю это
gnome-terminal -- "zsh; echo hello"
Я ожидаю, что откроется новый терминал с zsh и напечатан привет.
Но я получаю новый терминал с таким:
There was an error creating the child process for this terminal
Failed to execute child process “zsh; echo hello” (No such file or directory)
Некоторые важные результаты
Пожалуйста, взгляните
❯ gnome-terminal -e "echo hello"
# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
❯ gnome-terminal --command "echo hello"
# Option “--command” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
Выполнение следующих строк делает что-то вроде призрачных движений по экрану, но не дает видимого вывода
❯ gnome-terminal --window -- echo hello
❯ gnome-terminal --tab -- echo hello
❯ gnome-terminal --tab -- echo hello
❯ gnome-terminal --tab --wait -- echo hello
Где я ошибаюсь? Как выполнить мою предполагаемую работу, т.е. запустить новый терминал zsh с напечатанным приветствием и дождаться следующей команды
2 ответа
Лучший ответ
Дело в том, что вы открываете новый терминал, но выполняете эти команды в своем реальном терминале. Если вы хотите запускать эти команды В новом терминале, вы должны указать параметр -x
, который говорит, что он выполнит оставшуюся часть командной строки внутри терминала, который будет открыт. Теперь вы можете написать команду, но вам нужно указать параметр -c
для zsh, чтобы zsh принял первый аргумент «Команды в запятых» как команду. Теперь терминал выполнит команду и останется открытым, не мигая. Но у него не будет оболочки, и я думаю, вы хотите продолжать писать команды, поэтому вам нужно будет exec zsh
. Вот и все.
Это было бы примерно так:
gnome-terminal --x zsh -c 'echo hello; exec zsh'
1
Arnau Mas
6 Мар 2021 в 01:13
Первая строка вашего кода может содержать что-то вроде:
#!/usr/bin/expect -f
Или
#!/bin/bash
Убедитесь, что этот каталог существует. Например, возможно, вы запускаете программу, ожидающую, когда она не установлена.
-2
inye
10 Фев 2021 в 18:55
# |
|
Темы: 3 Сообщения: 9 Участник с: 07 августа 2011 |
Буквально недавно обновил систему, после того как появился ArchLinux 2011.08.19. После этого перестала работать гномовская консоль: Произошла ошибка при создании дочернего процесса для этого терминала getpt failed: Нет такого файла или каталога. Пробывал в fstab прописать такое: devpts /dev/pts devpts gid=5,mode=620 0 0 не помогло. Дальше не знаю как быть((( |
cucullus |
# |
Темы: 258 Сообщения: 3460 Участник с: 06 июня 2007 |
Какой-то безсвязный бред. Вы уж определитесь что из-за чего не работает и что, куда и почему прописывали…
такие дела. |
ainur101 |
# |
Темы: 3 Сообщения: 9 Участник с: 07 августа 2011 |
в общем, у меня отсуствует /dev/pts и терминалы не могут работать |
ainur101 |
# |
Темы: 3 Сообщения: 9 Участник с: 07 августа 2011 |
Вот ошибка, при загрузке: mount: mount point /dev/ shm does not exist. mount: mount point /dev/pts does not exist |
ainur101 |
# |
Темы: 3 Сообщения: 9 Участник с: 07 августа 2011 |
Решено. Создаем скрипт, с содержимым:
mkdir -p /dev/pts mkdir -p /dev/shm mountpoint -q /dev/pts || mount -n /dev/pts &>/dev/null || mount -n -t devpts devpts /dev/pts -o mode=0620,gid=5,nosuid,noexec mountpoint -q /dev/shm || mount -n /dev/shm &>/dev/null || mount -n -t tmpfs shm /dev/shm -o mode=1777,nosuid,nodev добавляем в файл rc.local: sh <путь к скрипту> Reboot. |
- Печать
Страницы: [1] Вниз
Тема: Запуск команды в gnome-terminal (Прочитано 3853 раз)
0 Пользователей и 1 Гость просматривают эту тему.
rvkdw
drkwv@drkwv-ubuntu:~$ gnome-terminal —command «cd ..»
вылетает с ошибкой
«Произошла ошибка при создании дочернего процесса для этого терминала»
1) Что я делаю не так?
2) Как надо это делать?
До этого устанавливал NautilusSVN и потом его удалял по инструкциям с сайта разработчика. Может ли эта ошибка вылетать из-за установки NautilusSVN?
« Последнее редактирование: 30 Марта 2009, 16:15:14 от rvkdw »
Psy[H[]
можно попробовать:
gnome-terminal -x blablabla
но не для всех работает. Для sudo, например, опять же вылетает ошибка с дочерним процессом.
Хочу gnome-terminal прикрутить к gmrun, там нужно указать команду терминала, к которой присовокупляется вводимая команда. Сейчас прописал gnome-terminal -x но не для всего работает.
Я знаю только то, что ничего не знаю.
rvkdw
можно попробовать:
gnome-terminal -x blablabla
но не для всех работает. Для sudo, например, опять же вылетает ошибка с дочерним процессом.
Хочу gnome-terminal прикрутить к gmrun, там нужно указать команду терминала, к которой присовокупляется вводимая команда. Сейчас прописал gnome-terminal -x но не для всего работает.
Дело в том, что я монтирую папку через sshfs, но отмонтироваться, по неясным мне причинам, она не хочет (только через sudo). Для того, чтобы ее примонтировать, я написал скрипт на ruby, который работает. Однако, чтобы отмонтировать нужно набрать пароль для sudo. Можно ли набирать пароль для sudo не через терминал?
gnome-terminal -x также вываливается.
ArcFi
nautilus sftp://$USER@192.168.1.2
+ настроить доступ по ключам или пароль в менеджер паролей добавить.
Так не проще будет? Или я не так понял?
Veter
Можно ли набирать пароль для sudo не через терминал?
gksudo
rvkdw
nautilus sftp://$USER@192.168.1.2
+ настроить доступ по ключам или пароль в менеджер паролей добавить.
Так не проще будет? Или я не так понял?
Я об этой возможности не знал.
Можно ли набирать пароль для sudo не через терминал?
gksudo
Спасибо.
Psy[H[]
а как все-таки сделать чтобы gnome-terminal не выдавал ошибок дочерних процессов?
Я знаю только то, что ничего не знаю.
- Печать
Страницы: [1] Вверх
#linux #shell #terminal #zsh #gnome-terminal
#linux #оболочка #терминал #zsh #gnome-терминал
Вопрос:
Я пытаюсь запустить новый gnome-терминал с помощью выполняемой команды
Когда я выполняю gnome-terminal
, новый терминал открывается плавно.
Теперь, когда я запускаю это
gnome-terminal -- "zsh; echo hello"
Я ожидаю, что откроется новый терминал с zsh, с напечатанным hello.
Но я получаю новый терминал с этим:
There was an error creating the child process for this terminal
Failed to execute child process “zsh; echo hello” (No such file or directory)
Некоторые важные результаты
Пожалуйста, взгляните
❯ gnome-terminal -e "echo hello"
# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
❯ gnome-terminal --command "echo hello"
# Option “--command” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
Выполнение следующих строк делает что-то вроде каких-то призрачных перемещений на экране, но не дает видимого вывода
❯ gnome-terminal --window -- echo hello
❯ gnome-terminal --tab -- echo hello
❯ gnome-terminal --tab -- echo hello
❯ gnome-terminal --tab --wait -- echo hello
Где я допускаю ошибку? Как я могу выполнить свою намеченную работу, т.Е. Запустить новый терминал zsh с напечатанным приветствием и ожиданием следующей команды
Ответ №1:
Происходит то, что вы открываете новый терминал, но запускаете эти команды в своем реальном терминале. Если вы хотите выполнить эти команды в новом терминале, вы должны указать -x
опцию, в которой говорится, что она выполнит оставшуюся часть командной строки внутри терминала, который будет открыт. Теперь вы можете написать команду, но вам нужно указать -c
опцию для zsh, чтобы zsh принял первый аргумент «Команды в запятых» в качестве команды. Теперь терминал выполнит команду и останется открытым, он не будет мигать. Но у него не будет оболочки, и я предполагаю, что вы хотите продолжать писать команды, поэтому вам нужно exec zsh
. И это все.
Это было бы что-то вроде этого:
gnome-terminal -- zsh -c 'echo hello; exec zsh'
Комментарии:
1. Большое спасибо за ваш ответ. Я попробовал. В текущем терминале была открыта новая вкладка с напечатанным приветствием и ожиданием ввода. Но это было отображено в исходном терминале
shell # Option “-x” is deprecated and might be removed in a later version of gnome-terminal. # Use “-- ” to terminate the options and put the command line to execute after it.
2. Мне это не кажется, возможно, это потому, что ваша версия терминала новее или из-за дистрибутива. Я думаю, попробуйте использовать — вместо -x. Несмотря на это сообщение, работает ли оно?
3. да, это работает. пожалуйста, обновите свой ответ с
--
помощью вместо-x
Ответ №2:
Первая строка вашего кода может содержать что-то вроде:
#!/usr/bin/expect -f
или
#!/bin/bash
убедитесь, что этот каталог существует. Например, возможно, вы запускаете программу expect, когда она не установлена.