Buenas,
Soy usuario de Centos desde hace un tiempo y estoy teniendo algunos problemas con el nuevo sistema de servicios de Centos 7... el caso es que necesito levantar varias instancias de un software como servicio, cada instancia tiene un fichero de configuración... el caso es que tengo un script que llama al arranque del software y le pasa el fichero de configuración entre otras acciones como generacion de pidfile, etc...
software_nodo.service
El tema es que no consigo sacar el nombre del nodo para pasarselo al script, en centos 6 con el script de arranque lo que hacía era:
NODO=`echo basename ${0} | awk -F'[_.]' '{print $2}'`
Pero en el servicio que creo uso la siguiente opcion:
Environment=NODO=`basename $0 | awk -F'[_.]' '{print $2}'`
o
Environment=NODO=`echo basename ${0} | awk -F'[_.]' '{print $2}'`
Y me da error... alguien sabe como sacar a una variable en el servicio el nombre del nodo directamente del nombre del fichero del servicio para pasarselo al script en el ExecStart
Ejemplo:
Nombre del servicio= software_pepe.service
Environment=NODO=`basename $0 | awk -F'[_.]' '{print $2}'`
ExecStart=/path_completo/script.sh
y que ejecute:
/path_completo/script.sh
Luego ya en el script se sustituye la variable NODO recogidas en el servicio con Environment para crear el PidFile, etc...
Un saludo y gracias de antemano!
Soy usuario de Centos desde hace un tiempo y estoy teniendo algunos problemas con el nuevo sistema de servicios de Centos 7... el caso es que necesito levantar varias instancias de un software como servicio, cada instancia tiene un fichero de configuración... el caso es que tengo un script que llama al arranque del software y le pasa el fichero de configuración entre otras acciones como generacion de pidfile, etc...
software_nodo.service
El tema es que no consigo sacar el nombre del nodo para pasarselo al script, en centos 6 con el script de arranque lo que hacía era:
NODO=`echo basename ${0} | awk -F'[_.]' '{print $2}'`
Pero en el servicio que creo uso la siguiente opcion:
Environment=NODO=`basename $0 | awk -F'[_.]' '{print $2}'`
o
Environment=NODO=`echo basename ${0} | awk -F'[_.]' '{print $2}'`
Y me da error... alguien sabe como sacar a una variable en el servicio el nombre del nodo directamente del nombre del fichero del servicio para pasarselo al script en el ExecStart
Ejemplo:
Nombre del servicio= software_pepe.service
Environment=NODO=`basename $0 | awk -F'[_.]' '{print $2}'`
ExecStart=/path_completo/script.sh
y que ejecute:
/path_completo/script.sh
Luego ya en el script se sustituye la variable NODO recogidas en el servicio con Environment para crear el PidFile, etc...
Un saludo y gracias de antemano!