Ejecutando scripts tcsh al inicio en bash env

Ejecutando scripts tcsh al inicio en bash env

Tengo un usuario llamado fooque usa tcshpor defecto /etc/passwd. No puedo cambiar ese shell predeterminado. Foo tiene un servicio llamado xyzejecución, para el cual todos los scripts de inicio y el archivo .(punto) que contiene variables ENV están en el directorio de inicio de foo.

Ahora también se crea un script de inicio para ejecutar ese servicio y se coloca en /etc/init.d/xyzel que está escrito en bash.

Ahora el problema es que el servicio no se inicia al iniciar y tampoco puedo ejecutarlo desde mi usuario predeterminado al iniciar sesión. Solo es posible ejecutarlo cuando ingreso al usuario foo y ejecuto el script para iniciar el servicio.

Si me gusta esto

sudo su foo /home/foo/xyzme mostrará errores como then: then/endif not found..

Entonces, lo que quiero es ejecutar un programa tcsh para ejecutarlo al arrancar desde un script init.d que está en bash. En este momento intenté hacer esto.

su - foo -c "source /home/foo/.env_vars && /home/foo/bin/xyz start"pero esto no inicia el servicio en el momento del arranque.

No estoy seguro de cómo hacer que un script tcsh se ejecute durante el arranque.

Respuesta1

Tu también puedes:

  • utilizar tcsh -c $scriptpara ejecutar los scripts con tcsh
  • establezca el shebang (primera línea) en el script #!/bin/tcshy configúrelo como ejecutable; luego puede iniciarlo $scriptcomo comando.

información relacionada