Quand tu lance ton script shell à la main, c'est ton interpréteur shell qui l'interprète (bash/zsh/ksh/...). Quand il est lancé au démarrage, ça peut être un autre interpréteur, comme dash sous Debian, car sensé être plus léger. Il se peut que sans le vouloir ton script fait appel à des spécificités de ton shell.
Quand Debian est passé à dash, les mainteneurs ont constaté que plusieurs scripts sensé être du shell de base (sh) contenaient des "bashisms".
Autre piste, vérifier ce que tu as dans ton environnement (path, alias) qui peut être différent pour root.
Sinon, comme d'autres l'ont déjà proposé, passer par des chemins absolus et éviter les "cd machin && wtf".
# Une idée comme ça
Posté par Croconux . En réponse au message Script perl dans /etc/init.d. Évalué à 2.
Quand Debian est passé à dash, les mainteneurs ont constaté que plusieurs scripts sensé être du shell de base (sh) contenaient des "bashisms".
Autre piste, vérifier ce que tu as dans ton environnement (path, alias) qui peut être différent pour root.
Sinon, comme d'autres l'ont déjà proposé, passer par des chemins absolus et éviter les "cd machin && wtf".