GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Une erreur s'est produite lors de la création du processus enfant pour ce terminal ?

J'utilise Ubuntu depuis la version 10.04 et je l'ai trouvé plus convivial que Windows. En ce moment, j'utilise 'Precise 12.04'. J'ai créé de nombreux lanceurs personnalisés pour les scripts bash et je n'ai jamais eu de problème jusqu'à hier.

J'ai installé une suite logicielle qui a plusieurs exécutables. L'exécutable principal abaqus est situé dans optsoftwaresname et est un lien symbolique vers l'exécutable abq610i dans /opt/softwaresname/executables/ .

L'exe principal abaqus nécessite des arguments de ligne de commande. J'utilise l'argument cae , (c'est-à-dire abaqus cae ) mais avec une autre commande pour rendre les graphiques dans un meilleur mode, d'où l'appel final :
XLIB_SKIP_ARGB_VISUALS=1 abaqus cae

J'ai créé un alias pour cette longue commande dans .bash_rc déposer sous :

alias abaquscae="XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"

Tout a parfaitement fonctionné, car l'alias exécute le logiciel. Étant un champion paresseux, j'ai pensé à créer un lanceur Cairo-dock pour cela. J'ai donc saisi abaquscae dans la case "commande à lancer au clic" et coché "Exécuter dans un terminal". Cependant, à ma grande consternation, après avoir cliqué sur le lanceur, une erreur s'est produite ::

There was an error creating the child process for this terminal
Failed to execute child process "abaquscae" (No such file or directory)

Par conséquent, j'ai écrit un petit fichier de script bash "abaquscae.sh":

#!/bin/sh
"XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"

et enregistré dans, l'a rendu exécutable et lors de son exécution dans bash shell, j'ai de nouveau eu l'erreur similaire, c'est-à-dire :

./abaquscae.sh: 2: ./abaquscae.sh: XLIB_SKIP_ARGB_VISUALS=1 abaqus cae: not found 

Maintenant, je suis totalement perdu, j'ai essayé de nombreuses astuces, par exemple
1- supprimer les virgules dans le script bash,
2- le rendre dos2unix ,
3- en utilisant le chemin complet vers l'exécutable
mais ce script ne s'exécute pas via le terminal bash.

PROBLÈME :

La commande (ainsi que son alias) fonctionne correctement dans le terminal bash, mais lorsqu'elle est exécutée via un autre canal (par exemple, des scripts/lanceurs), le terminal ne parvient lamentablement pas à les reconnaître 🙁 ..

Si un expert a des conseils/informations sur la façon de résoudre ce problème, merci de le partager. Je serai très reconnaissant.

Réponse acceptée :

Je pense que le script devrait ressembler à ceci :

#!/bin/bash
XLIB_SKIP_ARGB_VISUALS=1 /opt/softwaresname/abaqus cae

Vous pouvez également créer le lanceur à l'aide de la commande suivante :

bash -c 'XLIB_SKIP_ARGB_VISUALS=1 /opt/softwaresname/abaqus cae'

La définition de variables d'environnement avant le nom du fichier exécutable dans une ligne de commande est une fonctionnalité des shells CLI (Command Line Interface). Si vous mettez VARIABLE=value /path/to/executable dans un lanceur, le programme qui lit le lanceur (et lance effectivement l'exécutable) essaiera de trouver un fichier nommé "VARIABLE=valeur" et, bien sûr, échouera.

Connexe :les scripts de démarrage pour Unity Desktop ?

Cette commande lance bash , le shell utilisateur par défaut dans Ubuntu, et dites-lui de s'exécuter (le -c option) la chaîne « XLIB_SKIP_ARGB_VISUALS=1 /opt/softwaresname/abaqus cae », elle sera donc interprétée telle quelle lorsque vous la saisissez dans la CLI.


Ubuntu
  1. Comment trouver l'ID de processus (pid) d'un programme de terminal en cours d'exécution ?

  2. Existe-t-il un programme d'installation Wubi pour la version DVD d'Ubuntu ?

  3. Rendre le fichier Bat disponible partout pour le terminal ?

  4. Vmware Tools - Il y avait un problème lors de la mise à jour d'un composant logiciel. Réessayez plus tard et si le problème persiste, contactez le support Vmware ?

  5. Fichier .desktop. Une erreur s'est produite lors du lancement de l'application ?

Un guide du terminal Linux pour les débutants

Ont-ils simplement supprimé les paramètres d'arrière-plan du terminal ?

Client torrent pour la ligne de commande ??

Google Authenticator pour le bureau ?

La boucle Bash FOR expliquée et simplifiée

Solution pour l'erreur de démarrage Ubuntu « No such partition »