Pourquoi ne puis-je pas créer un file de script à partir de .xsessionrc?

Je cours LXDE / Openbox sur Debian Linux. En me connectant, je veux:

  • append un directory spécifique à l'user à la variable $ PATH (A)
  • exécuter certaines commands (non charts) (par exemple, monter des directorys) (B)

L'installation devrait fonctionner pour la connection graphique ainsi que pour les shells de connection (par exemple SSH). Surtout la partie sur l'extension de la variable $ PATH semble être délicate …

Ma solution idéale serait de placer toutes les commands (A et B) dans un file de script séparé (F) et de le .xsessionrc partir de .xsessionrc (pour la connection graphique via le gestionnaire de session) et .profile (pour les shell de connection). Sourcing F from .profile fonctionne bien, mais le sourcing de .xsessionrc semble échouer.

J'ai donc fait la solution de contournement pour définir le nouveau $ PATH directement dans .xsessionrc (et aussi dans .profile ) et juste exécutez F (maintenant contenant seulement les commands B) de .xsessionrc et .profile . Cela fonctionne bien, mais n'est pas vraiment satisfaisant, car j'ai maintenant quelques commands en double (A) dans .xessionrc et .xessionrc .

Y a-t-il une incarnation magique que je dois faire pour find un autre file à partir de .xsessionrc ou y .xsessionrc -il d'autres défauts évidents dans ma façon de penser?

Il n'y a aucune raison de chercher un file, avec la command standard de sourcing , c'est-à-dire . not source (qui est un cshism également supporté par tcsh, bash, ksh et zsh mais pas standard) ne fonctionnerait pas à partir de .xsessionrc .

Vous devez vous assurer que la syntaxe du file source est la syntaxe standard.

Pourquoi faites-vous ceci dans .xsessionrc et non par exemple dans .bash_profile ou n'importe quel autre file que votre shell utilise lors de la connection (ne pas confondre avec .bashrc , qui est fourni par chaque shell)? Ici (Fedora), il a même un commentaire utile User specific environment and startup programs

En fonction de votre dissortingbution, vous pouvez append des scripts pour qu'ils s'exécutent automatiquement au démarrage. Si vous utilisez initscripts, ils seront ajoutés à rc.local (/etc/rc.local IIRC) et avec systemd, je pense que vous ferez un file de service pour eux, puis l'activer afin qu'il s'exécute au démarrage.

Avec debian, ce serait initscripts et donc rc.local .

Le assembly doit être fait avec /etc/fstab qui fonctionnera au démarrage.