¿Hay alguna forma de agregar una aplicación / script al inicio de Linux para que cada vez que se inicie el sistema se ejecute?
Estoy buscando una forma automatizada, es decir, el usuario no debe agregar esto por trabajo cron o algo así.
¿Hay alguna forma de agregar una aplicación / script al inicio de Linux para que cada vez que se inicie el sistema se ejecute?
Estoy buscando una forma automatizada, es decir, el usuario no debe agregar esto por trabajo cron o algo así.
Respuestas:
Además de los scripts de inicio a nivel del sistema, su entorno de escritorio podría tener su propia forma de ejecutar programas automáticamente. Se .config/autostartsupone que la carpeta es una forma neutral para el escritorio de definir entradas de ejecución automática. /etc/xdg/autostartes para la configuración de todo el sistema. Detalles sobre la especificación en http://developer.gnome.org/autostart-spec/ .
Para LXDE, las entradas de inicio automático también se pueden configurar ~/.config/lxsession/LXDE/autostart.
Es un poco diferente si necesita ejecutar sus scripts después de que la red esté en funcionamiento. En ese caso, debe verificar los scripts especiales posteriores a la conexión que se pueden definir para su administrador de red. Tanto NetworkManager como wicd tienen sus propias formas de especificar entradas de ejecución automática posteriores a la conexión. Si la red se configura a través de ifupdown, los scripts posteriores se pueden colocar en la /etc/network/if-up.d/carpeta. Pero un mejor enfoque para ejecutar scripts posteriores a la conexión podría ser systemd (para sistemas que lo admiten, que es la mayoría de las distribuciones modernas).
Si lo que desea iniciar automáticamente no es una aplicación gráfica que requiere un escritorio, entonces es mejor evitar el uso de las instalaciones de inicio automático proporcionadas por xorg o por su entorno de escritorio actual.
systemd se ha vuelto omnipresente en muchas distribuciones modernas, y ofrece mucho control y flexibilidad en términos de cómo se inician sus servicios y cómo se ejecutan.
Resumiré algunos beneficios ( systemd puede hacer mucho más ):
User=myuserRestart=on-failure|on-watchdog|on-abnormal|alwaysType=simple|forking|oneshot|notify|dbusWants=network-online.targeten el[Unit] sección).Un servicio de ejemplo que inicia un demonio telegram-cli. Colocarlo en /etc/systemd/system/tg.service.
[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli
User=jicu
[Install]
WantedBy=multi-user.target
Ahora puede habilitar el servicio para iniciar automáticamente:
sudo systemctl enable tg
Comience el servicio:
sudo systemctl start tg
Detener el servicio:
sudo systemctl stop tg
Verifica el estado:
systemctl status tg
Deshabilitar el servicio:
sudo systemctl disable tg
Para ahorrarle un tipeo adicional, puede agregar su ~/.bashrclínea y alias sc='sudo systemctl $*'luego podrá acortar los comandos anteriores para, por ejemplo,sc start tg .
NOTA: Si ha utilizado
cron, tenga en cuenta que las entradas de crontab se ejecutan en un entorno restringido; lo mismo se aplica asystemd: utilice siempre rutas absolutas y no haga suposiciones de ninguna variable que se esté definiendo. Establezca explícitamente cualquier variable de la que dependan sus scripts.systemdno usará su usuario.bashrcy$PATH.
Más información:
Sí, es posible ejecutar programas al inicio en Linux definiendo las rutas a los ejecutables rc.localque residen en el directorio /etco /etc/rc.d, por ejemplo:
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/path/to/executable
Nota: no olvide asignar derechos ejecutables como se describe en la documentación del archivo, es decir Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
Startup applications usar el botón de inicioAdd Startup command box ingrese el comandoOK (debería ver su nuevo comando en la lista)Close Pruebe reiniciando o desconectando y volviendo a iniciar sesión.
Fuente: https://help.ubuntu.com/community/AddingProgramToSessionStartup
Cada distribución utiliza cada una de las técnicas propias de bootstrap, por lo que debe buscar documentos para su distribución. /etc/rc.local es un lugar donde puede colocar algunos scripts automatizados, pero está realmente desactualizado. Ahora, la mayoría de los sistemas basados en Linux utilizan niveles de ejecución o bootstraping systemd, por lo que la mayoría de los trabajos de inicio automático podrían controlarse de forma fina.
Encontré mi respuesta aquí: /programming/7221757/run-automatically-program-on-startup-under-linux-ubuntu Pude crear un archivo / script para apagar mi trackpad mientras estaba en mi sesión de Linux Ubuntu 12.10.