- There was an error creating the child process for this terminal
- 2 Answers 2
- Исправление ошибок Linux
- Решение проблем Linux
- Проблемы с командами в терминале
- Проблемы в программах
- Проблемы с драйверами и ядром
- Проблемы с графической оболочкой
- Проблемы с диском и файловой системой
- Выводы
- How do I diagnose «There was an error launching the application»?
- 7 Answers 7
- Linux script execution error. There was an error processing the request.
There was an error creating the child process for this terminal
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:
Some important results
Please take a look
Executing the following lines, does something like some ghost moves on the screen, but produces no visible output
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
2 Answers 2
What it’s happening is that you are opening a new terminal, but running those commands in your actual terminal. If you want to run those commands IN the new terminal, you’ve got to specify the -x option, which says that it will execute the remainder of the command line inside the terminal that will be opened. Now, you can write the command, but you need to specify the -c option for the zsh, in order for zsh to take the first argument «The commands within commas» as a command. Now the terminal will execute the command, and will stay opened, it won’t do that blinking. But it won’t have a shell, and I guess you want to keep writing commands, so you will need to exec zsh . And that’s it.
Источник
Исправление ошибок Linux
Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее.
Эта статья ориентирована в первую очередь на новичков, которые не знают, что делать когда их будут поджидать проблемы linux, мы дадим общую концепцию и попытаемся показать в какую сторону двигаться дальше. Мы рассмотрим исправление ошибок в linux как простых, так и более сложных. Но давайте сначала определим, какие проблемы linux будем рассматривать, разобьем их на категории:
- Проблемы с командами в терминале
- Проблемы с программами
- Проблемы с драйверами и ядром
- Проблемы с графической оболочкой
- Проблемы с диском и файловой системой
Все это мы рассмотрим ниже, но сначала общее введение и немного теории.
Решение проблем Linux
Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому. Здесь каждая программа создает лог файлы, в которых мы можем при достаточном знании английского или даже без него, выяснить, что произошло. Более того, если программу запускать из терминала, то все ошибки linux и предупреждения мы увидим прямо в окне терминала. и сразу можно понять что нужно делать.
Причем вы сможете понять что произошло, даже не зная английского. Главным признаком ошибки есть слово ERROR (ошибка) или WARNING (предупреждение). Рассмотрим самые частые сообщения об ошибках:
- Permission Denied — нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
- File or Directory does not exist — файл или каталог не существует
- No such file or Directory — нет такого файла или каталога
- Not Found — Не найдено, файл или ресурс не обнаружен
- Connection Refused — соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
- is empty — означает, что папка или нужный файл пуст
- Syntax Error — ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
- Fail to load — ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.
Сообщения об ошибках, кроме терминала, мы можем найти в различных лог файлах, все они находятся в папке /var/log, мы рассматривали за какие программы отвечают определенные файлы в статье просмотр логов linux. Теперь же мы подробнее рассмотрим где и что искать если linux выдает ошибку.
Проблемы с командами в терминале
Обычно проблемы с командами в терминале возникают не из-за ошибки linux или потому, что разработчики что-то недоработали, а потому, что вы ввели что-то неправильно или предали не те что нужно опции.
Если были переданы не те опции, то, скорее всего, программа покажет вам справку, ознакомившись с которой вы сможете очень быстро понять в чем проблема. Также справку выдают множество команд если их запустить без параметров.
Также довольно частой ошибкой при выполнении команд есть неиспользование команды sudo перед самой командой для предоставления ей прав суперпользователя. В таких случаях вы обычно получаете ошибку Permission Denied или просто уведомление, что не удалось открыть тот или иной файл или ресурс: can not open . can not read . и так далее.
Если файла, которого вы передали в параметрах не существует, то вам будет об этом сказано соответствующим сообщением. Сообщения могут быть и более специфичные, в зависимости от ошибки, но в конце концов, вы можете воспользоваться переводчиком Google, чтобы понять смысл того, что хочет система.
Очень распространенной среди новичков ошибкой, есть no such file or directory при попытке выполнить файл, скачанный из интернета. Сразу кажется что это бред, ведь файл существует, но на самом деле оболочка ищет только файлы с флагом исполняемый, а поэтому пока вы не установите этот флаг для файла, он для оболочки существовать не будет.
Проблемы в программах
Если ни с того ни с сего закрывается или не так, как требуется работает, какая-нибудь графическая программа, решение проблем linux начинается из запуска ее через терминал. Для этого просто введите исполняемый файл программы и нажмите Enter. Обычно достаточно начать вводить имя программы с маленькой буквы и использовать автодополнение для завершения ввода названия.
В терминале программа, скорее всего, покажет почему она не работает. Также у многих программ поддерживается опция -v или —verbose. Вы можете попробовать использовать эту опцию, если первый запуск в терминале ничего не дал. Далее, когда уже есть сообщение об ошибке, вы можете попытаться исправить его сами, если поняли в чем дело или попытаться найти решение на формуме, скорее всего, другие пользователи уже решили вашу проблему. Но если нет, вы можете создать новую тему и описать там свою ошибку. Но без вывода программы в терминале вам вряд ли помогут.
Многие ошибки системы linux, связанные с графической оболочкой вы можете найти в файле
/.xsession-errors в вашей домашней директории. Если оболочка работает медленно, зависает или не работают другие программы, но в других логах причин этому нет, возможно, ответ находится именно в этом файле.
Также ошибки linux могут возникать не только в обычных программах но и в работающих в фоне сервисах. Но их тоже можно решить, чтобы посмотреть сообщения, генерируемые сервисом, запущенным с помощью systemd, просто наберите команду просмотра состояния сервиса:
$ sudo systemctl status имя_сервиса
Дальше вы знаете, что делать с этой ошибкой, главное что у вас есть зацепка, а дальше все можно решить, ну или почти все.
Здесь, как и всегда большинство ошибок связано с тем, что что-то не установлено, какого-то файла нет или к чему-то невозможно получить доступ, тогда решение проблем linux не вызовет много забот.
Проблемы с драйверами и ядром
Проблемы с драйверами, модулями ядра или прошивками могут вызвать много неприятностей во время загрузки системы. Это может быть просто медленная загрузка системы, неработоспособность определенных устройств неправильная работа видео или полная невозможность запустить графическую подсистему. Исправление ошибок Linux начинается с просмотра логов.
Вы можете посмотреть все сообщения ядра с момента начала загрузки, выполнив команду чтобы узнать какую linux выдает ошибку:
Чтобы иметь возможность удобно листать вывод можно выполнить:
sudo dmesg | less
Или сразу выбрать все ошибки:
sudo dmesg | grep error
Дальше будет очень просто понять какого драйвера не хватает, что система не может загрузить или что нужно установить. Если возникает ошибка ввода-вывода linux, то, скорее всего, драйвер несовместим с вашим устройством, в таком случае, может помочь обновление ядра, чтобы получить самую новую версию драйвера. В некоторых случаях ядро может само предложить вариант решения проблемы прямо в сообщении об ошибке вплоть до того какую команду выполнить или какой файл скачать. Если же нет, вы все еще можете воспользоваться поиском для решения своей проблемы linux.
Проблемы с графической оболочкой
Когда проблемы linux касаются графической оболочки, то решить их новичкам не так уж просто. Больше всего потому что доступен только терминал. Графическая оболочка может просто зависнуть или вовсе не запускаться, например, после обновления.
При проблемах с графической оболочкой вы можете всегда переключиться в режим терминала с помощью сочетания клавиш Ctrl+Alt+F1. Далее, вам нужно ввести логин и пароль, затем можете вводить команды терминала.
Посмотреть логи графической оболочки вы можете в том же файле
Если проблема наблюдается после обновления до новой версии, то можно очистить кеш и удалить папку с настройками, обычно это помогает.
Проблемы с диском и файловой системой
Самая частая проблема с диском у новичков — это переполнение диска. Если под диск выделить очень мало места, то он переполнится и система не сможет создавать даже временные файлы, а это приведет к тому что все если не зависнет, то, по крайней мере, не сможет нормально работать.
Если это случилось, вам, скорее всего, придется переключиться в режим терминала и удалить несколько файлов. Вы можете удалять файлы логов или кэша пакетного менеджера. Много файлов удалять не нужно, достаточно освободить несколько мегабайт, чтобы прекратились ошибки системы linux и нормально работала графическая оболочка, а затем уже в ней решать все проблемы linux.
Выводы
Теперь исправление ошибок Linux будет для вас немного проще. Ошибки системы linux довольно сложная тема и этой информации явно мало, если у вас остались вопросы или есть предложения по улучшению статьи пишите в комментариях!
Источник
How do I diagnose «There was an error launching the application»?
I created a my-app.desktop file for a program I wrote. When I double-click it, I get the error message «There was an error launching the application«. How can I get more detailed information about what the problem is?
I saw a reference to a «details» section of the dialog box, but there is nothing like that present in the one I see. If I were on my Mac, I’d open the Console app to see if any errors were logged, but I haven’t learned of anything similar on Ubuntu.
(Note that unlike other similarly-titled questions, I am not asking what’s wrong with this particular .desktop file; I want to know how to find out in general.)
7 Answers 7
Found an answer to this question here: https://askubuntu.com/a/836842
It outputs errors in your .desktop file. For example mine returned :
So once I corrected the typo to Desktop Entry , the script ran successfully.
Here’s a trick you can use. Create a wrapper script for your application that will launch it and capture the error output:
/foo.sh and make it executable with chmod +x
/foo.sh . Now, point your desktop launcher to it instead. Something like:
That will redirect any error messages to
/myapp.log and you can examine them at your leisure. You can use 2>>
/myapp.log if you want successive error messages to be appended to the file instead of overwriting it.
As an aside, the reason that the $PATH is different is because you are probably setting your $PATH in
/.bahsrc which is not read by the graphical environment. It is also a bad idea since the $PATH will be set every time you open a new terminal and that is needless overhead. Use
/.profile for this instead. For more details on which files are read when see here and for more on which file should be used for what, see here.
By running the following command in terminal:
I am sure that you will find out if there is an error or not in your command assigned to the Exec field from inside of your .desktop file.
usually, the terminal(-output) gives you a lot of useful information, both on the application as well as the desktop file. An example: if I run my application from the terminal, typing the command in the terminal, the application starts.
However, if there is something wrong, you can expect an output like:
which gives you a lot of usefull information, even the line in your application that causes the error. (I messed it up on purpose)
The same with the desktop file, just open a terminal in the directory of the .desktop file and drag it on to the terminal. If you for example remove the Exec= line from a .desktop file, the terminal will tell you it cannot find the command to execute.
To test if the application gives an error, just run what you put after the Exec= string.
The terminal output is usually very specific and useful in bug reports, like here.
Источник
Linux script execution error. There was an error processing the request.
This scream for help could actually have one of two different err messages, I’ll try to explain:
I’m attempting to execute a python script in a SAM template deployed to an agent running on Raspbian(Stretch).
print «Statistic.Pressure: 14»
print «Message.Pressure: Pressure»
When I test from within the template editing process, I get this:
Output Result:ND Get Output Failed:
When viewing the application monitor after a poll attempt, the err on the component is shown as:
«Linux script execution error. No fields were recognized in the script output»
When I look at the debug log for the application on the agent, I see this:
Which leaves me confused.
I understand the err on the application page, because the outputs(Static.Pressure and Message.Pressure) are not defined.
But I can’t define the output within the template if the output is not returned.
The script seems as though it is being interpreted absolutely perfectly because in the debug file, the output is shown as expected, without error.
I just can’t figure out why that output isn’t *seeming to be brought back when editing the template.
Any thoughts, ideas, or suggestions would be greatly appreciated.
I have the same issue running a bash script to an Ubuntu 16 box.
Please could you share the logfile name and location above so I can check the contents on my system.
In your template do you have any #Outputs defined?
Thank you for the prompt reply.
I will check that in the morning.
I assume you mean under Script Output #1
Will let you know what I have configured there.
No, no outputs are defined in the template. The only way I know how to create them via the script execution mechanism in the edit-template interface, which is where the error is being encountered.
The debug output for mine (polling via agent) was here:
So, I’ve made progress, moving past the «. error processing request. » and can execute the script, which utilizes some modules outdise of what is included in the base Raspbian(Stretch) image from raspberry.org, without error when I select «agentless» in the template. It is when I switch the execution preference to «Agent» that I get the following err in the debug output:
ImportError: No module named ‘ruuvitag_sensor’
from the Admin guide, I do gather that the agent has it’s own «lightly provisioned» user used to run the services, but the guide also says:
«. if you do not enter credentials or select Inherit from node, the monitor executes the script under the agent credentials(SWIAgent). These credentials may not have the elevated permissions required for executing scripts.»
I found nothing else in the Admin PDF that goes into further detail than this in respect to the execution environment that SAM Unix/Linux scripts are executed within.
For it to be specifically noted that scripts will be executed under the ‘SWIAgent’ credentials IF no other credentials are specified within the template/component, it seems as though I should clearly be able to expect that if credentials ARE specified for the template/component that the script would be executed under the specified credentials, which is why I am confused that I can execute, without error, the script using the credential going the Agentless execution route, but get errors when selecting the component be executed via the Agent, hence my search for an understanding of what actual, resulting differences there actually are between executing the script successfully locally or via SSH, compared to with the agent, credential being a constant.
All of that said, I am admittedly a Windows/C#/.Net/PowerShell guy trying to find my way through this new Linux stuff. . so go easy on me!
Источник