J'exécute un script shell référencé dans rc.local. Le fichier est git-versioned et doit changer dans le répertoire personnel respectif de chaque utilisateur. Les chemins absolus fonctionnent bien, mais ceux-ci sont différents d'une machine à l'autre. $ HOME ou ~/ne sont pas encore définis, comment puis-je changer dans le répertoire de l'utilisateur principal dans rc.local au démarrage?
C'est le script de travail:
cd/home/nom d'utilisateur/rightDIR
php -S localhost: 8000
Ce script démarre le serveur, mais ne parvient pas à se déplacer dans la bon répertoire à l'avance:
cd $ HOME/rightDIR
php -S localhost: 8000
Qui voulez-vous dire par "l'utilisateur principal"? '$ HOME' est défini, et' ~ 'utilisera la valeur courante de' $ HOME', mais ils se référeront tous les deux au répertoire personnel de l'utilisateur root, car 'root' est l'utilisateur qui exécute' rc.local'. – chepner
Je veux dire l'utilisateur qui va se connecter, une fois la machine démarrée (par exemple moi-même), alors peut-être que je devrais reformuler: comment je peux cd dans le répertoire users même si le script est exécuté par root. (il n'y aura qu'un seul utilisateur sur chaque système) – TheRed
Encore une fois, quel utilisateur? Les machines peuvent avoir plusieurs utilisateurs, et * aucun * d'entre eux sont connectés au moment où 'rc.local' est exécuté. Autre que 'root', il n'y a aucune notion d'un autre utilisateur distingué. S'il y a un utilisateur non-root spécifique impliqué dans une procédure de démarrage, vous devez être explicite dans le script sur qui c'est. La machine ne peut pas * deviner * qui se connectera une fois le démarrage terminé. – chepner