entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

como crear archivo.sh que ejecute archivo.py

tengo el archivo.py en la ruta /var/www/demo/archivo.py y quiero que se ejecute desde que inicio la maquina

1 Respuesta

4votos

carlossevi Puntos63580

El contenido del archivo.sh debería ser el siguiente:

#!/bin/bash
python /var/www/demo/archivo.py

Hasta ahí lo único que hace el .sh es ejecutar el script archivo.py, que es lo que pides en el título de la pregunta. Pero... ¿Es lo que necesitabas?

En el texto mencionas que quieres que se ejecute desde el inicio, pero realmente eso no tiene nada que ver con que crear un fichero .sh o de ningún otro tipo. Para solicitar ejecuciones programadas debes añadir un registro al crontab (ejemplo).

Si tu necesidad es exclusivamente la de ejecutar ese script desde el inicio del sistema te puedes saltar el paso de crear el .sh y ejecutar el comando python /var/www/demo/archivo.py directamente desde el crontab. Para ello tendrías que añadir la siguiente línea a tu fichero cron:

@reboot  python /var/www/demo/archivo.py

0voto

RbnSant comentado

muchas gracias carlos, pero ya habia hecho el archivo.sh de esa manera y le di permisos de ejecucion e inclusive lo coloque en la carpeta /etc/init.d/ pero no me funciono,. ahora lo que me queda es hacerlo con cron, de ante mano te agradesco por tu grandiosa respuesta

0voto

Leonardo-Tadei comentado

Acordate de darle al archivo SH atributos de ejecución...

Alternativamente al método que te propone Carlos, podrías poner una llamada el script bash en /etc/rc.local todo lo que está ahí se ejecuta luego de finalizado el arranque del sistema... es más simple que manejar el CRON.

También verificá que si escribís en la consola:

puthon /var/www/demo/archivo.py

el script Python se ejecute... si no se ejecuta ahí tampoco lo hará desde un script.

0voto

carlossevi comentado

Me gusta más la solución de Leonardo que la mía, es decir, la de editar el archivo /etc/rc.local y añadir la línea de python /var/www/demo/archivo.py. Incluyendo el contenido por defecto de dicho archivo debería quedar algo parecido a:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

# Ejecutar el script de demo en cada arranque:
python /var/www/demo/archivo.py

Cuidado de no eliminar algo que ya exista en dicho archivo. Más información. Propongo que Leonardo publique su respuesta como respuesta en lugar de comentario para que puedas elegirla.

0voto

RbnSant comentado

Muy bien, ya esta funcionando. justo lo que quería, gracias Leonardo y Carlos

0voto

Leonardo-Tadei comentado

Me alegro que te hayan servido las repuestas. Por favor, seleccionala así el tema queda cerrado.

Al respecto, tambiés podés uasr la carácterísticas del kernel Linux para "ejecución de código misceláneo" que consiste en que el script en cuestión, tenga en su primer línea la ruta al intérprete de comandos, con lo que el script python queda como un ejecutable más del sistema a los efectos de hacer las llamadas.

Sería así:

#!/usr/bin/python
print "Hola mundo";

guardás el archivo con por ejemplo el nombre "micomando" y le das atributos de ejecución.

La 1er línea que debe empezar con #! tiene la ruta al intérprete. Luego todo el código que escribís es Python.

La ventaja de este mecanismo es que te permite crear comandos usando el lenguaje interpretado que más te guste: solo basta poner en la 1er línea la ruta al intérprete.

Saludos!

0voto

RbnSant comentado

Gracias Leonardo. para poder seleccionarla necesito que modifique su comentario como respuesta!

0voto

Leonardo-Tadei comentado

Hola rbnsant,

marcá como seleccionada la respuesta original de Carlos: lo mío fue un aporte basado en la idea de él.

Saludos cordiales!

0voto

carlossevi comentado

Me ha encantado la posibilidad de "ejecución de código misceláneo", la verdad es que no la conocía. ¡Estupenda conversación!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta