web-dev-qa-db-fra.com

Que signifie "commande renvoyée 1"?

J'essaie d'obtenir une commande à exécuter à partir de mon interface MythTV sur un ordinateur Mythbuntu.

Lorsque j'essaie une commande de test, touch /home/mythbuntu/test, cela ne fonctionne pas et je vois cette entrée dans /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

Je suppose que returned 1 signifie une sorte d'état d'erreur, mais une recherche sur Google n'a abouti à rien que je puisse comprendre.

Que signifie returned 1 et que me dit-il à propos de la commande que j'essaie d'exécuter?

3
Questioner

Ce n'est pas dans la page de manuel Ubuntu pour touch mais les exit status pour touch sont:

  • 0 L'utilitaire tactile a été exécuté avec succès et toutes les modifications demandées ont été apportées.
  • > 0 Une erreur est survenue. L'utilitaire tactile a renvoyé le nombre de fichiers pour lesquels les heures n'ont pas pu être modifiées avec succès.

Donc, le 1 est le nombre de fois que touch a échoué. Très probablement, vous n'utilisez pas le bon utilisateur ou le bon groupe pour exécuter cette commande. Vérifiez donc les autorisations du groupe que vous tentez de modifier avec l'utilisateur et le groupe.

ls -l /home/mythbuntu/test

S'il s'agit de l'utilisateur: groupe mythtv: mythtv, vous devez ajouter votre utilisateur au groupe mythtv pour que touch fonctionne.

3
Rinzwind
  • Les commandes renvoient généralement un code de sortie différent de zéro lorsque quelque chose s'est mal passé.
  • Comme le montre mythsystemevent.cpp source , le système principal de MythTV renvoie consciencieusement le code de sortie réel de la commande s'il est différent de zéro:

     if (résultat! = GENERIC_EXIT_OK) 
     LOG (VB_GENERAL, LOG_WARNING, LOC + 
     QString ("La commande '% 1' a renvoyé% 2") 
    . arg. (m_command).arg (résultat)); 
    
  • Donc, returned 1 vous indique une erreur en ce sens que la commande que vous avez essayé d'exécuter a échoué avec le code de sortie 1
  • Pour savoir ce que signifie par rapport à la commande ou la cause de l'échec, vous devez consulter la documentation de la commande.
    • Par exemple, la page de manuel touch vous indique d'exécuter info coreutils 'touch invocation' pour le manuel complet, qui se termine par . Un état de sortie égal à zéro indique un succès et une valeur non nulle un échec. .
    • Pour plus de détails, voir la réponse de Rinzwind.
2
ish