Что действительно “управляет возвращенный 1” средний?

Я пытаюсь заставить команду выполняться из моего интерфейса MythTV на компьютере Mythbuntu.

Когда я пробую тестовую команду, touch /home/mythbuntu/test, это не работает, и я вижу эту запись в /var/log/mythtv/mythbackend.log:

Jul 19 14:29:35 mythbuntu mythbackend[1863]: W SystemEvent mythsystemevent.cpp:55 (run) MythSystemEventHandler: Command 'touch /home/mythbuntu/test' returned 1

Я принимаю returned 1 означает некоторое ошибочное состояние, но поиск Google не привел ни к чему, что я мог понять.

Что делает returned 1 средний, и что это говорит мне о команде, которую я пытаюсь выполнить?

3
задан 19 July 2012 в 10:22

2 ответа

Его нет в справочной странице Ubuntu для touch , но exit status для touch:

  • 0 Утилита touch успешно выполнена и все запрошенные изменения были сделаны.
  • > 0 Произошла ошибка. Утилита touch вернула количество файлов, для которых времена не могли быть успешно изменены.

Таким образом, 1 - это количество раз, когда touch не удалось выполнить. Скорее всего, вы не используете правильного пользователя или группу для выдачи этой команды, поэтому проверьте пользовательские и групповые разрешения для файла, который вы пытаетесь изменить с помощью

ls -l /home/mythbuntu/test

Если это пользователь: group mythtv: mythtv you необходимо добавить вашего пользователя в группу mythtv для touch для работы.

0
ответ дан 19 July 2012 в 10:22
  • Команды обычно возвращают ненулевой код завершения, когда что-то идет не так.
  • Как показывает источник mythsystemevent.cpp , серверная часть MythTV покорно возвращает фактический код выхода команды, если он не равен нулю:

    if (result != GENERIC_EXIT_OK)
    LOG(VB_GENERAL, LOG_WARNING, LOC +
    QString("Command '%1' returned %2")
    .arg(m_command).arg(result));
    
  • Таким образом, returned 1 сообщает, что произошла ошибка: команда, которую вы пытались выполнить, не выполнена с кодом выхода 1
  • Чтобы выяснить что это означает, что в отношении команды или причины сбоя вам необходимо ознакомиться с документацией по команде.
    • Например, man-страница touch говорит вам, чтобы вы запустили info coreutils 'touch invocation' для полного руководства, которое, в свою очередь, завершается с Нулевое состояние выхода указывает на успех, а ненулевое значение указывает на сбой.
    • Подробнее см. Ответ Ринзвинда.
0
ответ дан 19 July 2012 в 10:22

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

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