Error 127 bash

������� C-1. "�����������������" ���� ����������

���������� C. ���� ����������, �������
���������������� �����

������� C-1. «�����������������» ����
����������

��� ���������� ����� ������ ����������
1 ������������� ������ let «var1 = 1/0» ��������� ������, ����� ��� «������� �� ����»
��.
2 �������� ������������ � Bash — ��������
������������� ���������� ������
����������� �������� �����, ������ ���
���������� ������������ ������ 1
126 ���������� ������� �� ����� ����
���������
��������� ��-�� ������� � ������� �������
��� ����� ������ �� ���������� ������������� ����
127 «������� �� �������» �������� ������� ���� � ����������
��������� $PATH, ���� � �������� ����������
����� �������
128 �������� �������� ������� exit exit 3.14159 ������� exit ����� ��������� ������
������������� ��������, � ��������� 0 — 255
128+n ��������� ������ �� ������� «n» kill -9 $PPID �������� $? ������ 137
(128 + 9)
130 ���������� �� Control-C Control-C — ��� ����� �� ������� 2, (130 =
128 + 2, ��. ����)
255* ��� ���������� ��� �����������
���������
exit -1 exit ����� ��������� ������
������������� ��������, � ��������� 0 — 255

�������� ���� �������, ���� ���������� 1 — 2, 126 — 165 � 255
[1] ����� ���������������� ��������,
������� ��� ������� �������� ������������ ���� ����� ��� �����
����. ���������� �������� � ����� �������� exit 127, ����� �������� �
�������������� ��� ������ ������ � �������� (������������� �� ��
�������� ������ «������� �� �������»? ��� ���
��������������� ������������� ��� ����������?). � �����������
�������, ������������ ��������� exit 1, � �������� ������� �� ������.
��� ��� ��� ���������� 1 ������������� �����
«�����» ������, �� � ������ ������ ������ �������� �
����� ���� ���������������, ���� � �� ��������������� —
����.

�� ��� ��������������� ������� ����������������� ����
���������� (��. /usr/include/sysexits.h), �� ���
�������������� ������������� ��� �������������, ������� �� ������
C � C++. ����� ��������� ���������� ���������� ���� ����������,
������������ �������������, ���������� 64 — 113 (�, ���� �����
���������� — 0, ��� ����������� ��������� ����������), �
������������ �� ���������� C/C++. ��� ������� �� ����� ������
����� �������.

��� ��������, ����������� � ������� ���������, ��������� �
������������ � ���� ����������, �� ����������� �������, �����
���������� ���������� ��������������, �������� � ������ 9-2.

Note

��������� � ���������� $?, �� ���������
������, ����� ���������� ������ ��������, ���� ���������,
� ������������ � ��������, ����������� ����, �� ������
��� Bash ��� sh. ��� ����������� csh ���
tcsh �������� ����� �
��������� ������� ����������.

Problem

Exit code 127 means job’s command can not be found or executed

Resolving The Problem

A job fails with exit code 127. What does exit code 127 mean?

>bjobs -l
..
Thu Nov 18 18:39:28: Exited with exit code 127. The CPU time used is 0.1 seconds.
Thu Nov 18 18:39:28: Completed .

There are two possible meanings:

  • · The job exits with exit code 127. Ex. «exit 127» or «return(127)”
  • · If LSF returns 127, it means a command in the job is not found or executable.

Refer to «Understanding Platform LSF job exit information” in «Platform LSF Configuration Reference” for more details.

[{«Product»:{«code»:»SSWRJV»,»label»:»IBM Spectrum LSF»},»Business Unit»:{«code»:»BU059″,»label»:»IBM Software w/o TPS»},»Component»:»—«,»Platform»:[{«code»:»PF025″,»label»:»Platform Independent»}],»Version»:»Version Independent»,»Edition»:»»,»Line of Business»:{«code»:»LOB10″,»label»:»Data and AI»}},{«Product»:{«code»:»SSWRJV»,»label»:»IBM Spectrum LSF»},»Business Unit»:{«code»:»BU059″,»label»:»IBM Software w/o TPS»},»Component»:null,»Platform»:[{«code»:»»,»label»:»»}],»Version»:»»,»Edition»:»»,»Line of Business»:{«code»:»LOB10″,»label»:»Data and AI»}}]

Содержание

  1. Приложение C. Коды завершения, имеющие предопределенный смысл
  2. Примечания
  3. Linux return code 127
  4. Notes [1] An update of /usr/include/sysexits.h allocates previously unused exit codes from 64 — 78 . It may be anticipated that the range of unallotted exit codes will be further restricted in the future. The author of this document will not do fixups on the scripting examples to conform to the changing standard. This should not cause any problems, since there is no overlap or conflict in usage of exit codes between compiled C/C++ binaries and shell scripts. Источник

Приложение C. Коды завершения, имеющие предопределенный смысл

Таблица C-1. «Зарезервированные» коды завершения

Код завершения Смысл Пример Примечание
1 разнообразные ошибки let «var1 = 1/0» различные ошибки, такие как «деление на ноль» и пр.
2 согласно документации к Bash — неверное использование встроенных команд Встречаются довольно редко, обычно код завершения возвращается равным 1
126 вызываемая команда не может быть выполнена возникает из-за проблем с правами доступа или когда вызван на исполнение неисполняемый файл
127 «команда не найдена» Проблема связана либо с переменной окружения $PATH, либо с неверным написанием имени команды
128 неверный аргумент команды exit exit 3.14159 команда exit может принимать только целочисленные значения, в диапазоне 0 — 255
128+n фатальная ошибка по сигналу «n» kill -9 $PPID сценария $? вернет 137 (128 + 9)
130 завершение по Control-C Control-C — это выход по сигналу 2, (130 = 128 + 2, см. выше)
255* код завершения вне допустимого диапазона exit -1 exit может принимать только целочисленные значения, в диапазоне 0 — 255

Согласно этой таблице, коды завершения 1 — 2, 126 — 165 и 255 [1] имеют предопределенное значение, поэтому вам следует избегать употребления этих кодов для своих нужд. Завершение сценария с кодом возврата exit 127, может привести в замешательство при поиске ошибок в сценарии (действительно ли он означает ошибку «команда не найдена» ? Или это предусмотренный программистом код завершения?). В большинстве случаев, программисты вставляют exit 1, в качестве реакции на ошибку. Так как код завершения 1 подразумевает целый «букет» ошибок, то в данном случае трудно говорить о какой либо двусмысленности, хотя и об информативности — тоже.

Не раз предпринимались попытки систематизировать коды завершения (см. /usr/include/sysexits.h), но эта систематизация предназначена для программистов, пишущих на языках C и C++. Автор документа предлагает ограничить коды завершения, определяемые пользователем, диапазоном 64 — 113 (и, само собой разумеется — 0, для обозначения успешного завершения), в соответствии со стандартом C/C++. Это сделало бы поиск ошибок более простым.

Все сценарии, прилагаемые к данному документу, приведены в соответствие с этим стандартом, за исключением случаев, когда существуют отменяющие обстоятельства, например в Пример 9-2.

Обращение к переменной $?, из командной строки, после завершения работы сценария, дает результат, в соответствии с таблицей, приведенной выше, но только для Bash или sh . Под управлением csh или tcsh значения могут в некоторых случаях отличаться.

Примечания

Указание кода завершения за пределами установленного диапазона, приводит к возврату ошибочных кодов. Например, exit 3809 вернет код завершения, равный 225 .

Источник

Linux return code 127

Table E-1. Reserved Exit Codes

Exit Code Number Meaning Example Comments
1 Catchall for general errors let «var1 = 1/0» Miscellaneous errors, such as «divide by zero» and other impermissible operations
2 Misuse of shell builtins (according to Bash documentation) empty_function() <> Missing keyword or command, or permission problem (and diff return code on a failed binary file comparison ).
126 Command invoked cannot execute /dev/null Permission problem or command is not an executable
127 «command not found» illegal_command Possible problem with $PATH or a typo
128 Invalid argument to exit exit 3.14159 exit takes only integer args in the range 0 — 255 (see first footnote)
128+n Fatal error signal «n» kill -9 $PPID of script $? returns 137 (128 + 9)
130 Script terminated by Control-C Ctl-C Control-C is fatal error signal 2 , (130 = 128 + 2, see above)
255* Exit status out of range exit -1 exit takes only integer args in the range 0 — 255

There has been an attempt to systematize exit status numbers (see /usr/include/sysexits.h ), but this is intended for C and C++ programmers. A similar standard for scripting might be appropriate. The author of this document proposes restricting user-defined exit codes to the range 64 — 113 (in addition to 0 , for success), to conform with the C/C++ standard. This would allot 50 valid codes, and make troubleshooting scripts more straightforward. [2] All user-defined exit codes in the accompanying examples to this document conform to this standard, except where overriding circumstances exist, as in Example 9-2 .

Notes

An update of /usr/include/sysexits.h allocates previously unused exit codes from 64 — 78 . It may be anticipated that the range of unallotted exit codes will be further restricted in the future. The author of this document will not do fixups on the scripting examples to conform to the changing standard. This should not cause any problems, since there is no overlap or conflict in usage of exit codes between compiled C/C++ binaries and shell scripts.

Источник

Adblock
detector

Понравилась статья? Поделить с друзьями:
  • Error 1261 01000 row 1 doesn t contain data for all columns
  • Error 1260 эта программа заблокирована групповой политикой
  • Error 126 не найден указанный модуль сталкер
  • Error 126 не найден указанный модуль mta next rp
  • Error 126 не найден указанный модуль mta loader dll