¿Es posible agregar un trabajo en CRON sin la intención del usuario?
Sourav
si. simplemente escriba /etc/cron.do llame a crontab desde su programa sin que ellos lo sepan.
¿Qué quieres decir? Si quiere decir agregar manualmente uno programáticamente, entonces sí. Las tablas de referencias son solo archivos de texto.
10
Inicio automático de Xorg
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).
Inicio automático como un servicio systemd
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.
Ejecutar como root o como usuario específico: por ej. User=myuser
Reinicie los servicios en caso de falla con tiempos de espera configurables: Restart=on-failure|on-watchdog|on-abnormal|always
Configuración del tipo de servicio: Type=simple|forking|oneshot|notify|dbus
Establezca condiciones y dependencias de inicio, es decir, puede configurar su servicio para que se inicie después de que la red esté activa ( Wants=network-online.targeten el[Unit] sección).
Un servicio de ejemplo que inicia un demonio telegram-cli. Colocarlo en /etc/systemd/system/tg.service.
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 a systemd: 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.
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.
agregar entrada en el archivo iniciará el programa cada vez?
Sourav
2
Cada vez que reinicia, sí. Si desea trabajos programados regularmente (todos los días, horas, semanas o cualquier combinación extraña), entonces el cronprogramador es su amigo.
3
Buscar Startup applications usar el botón de inicio
Hacer clic Add
Ingrese un nombre para llamar a la aplicación (cualquier nombre servirá)
En el Startup command box ingrese el comando
Hacer clic OK (debería ver su nuevo comando en la lista)
Hacer clic Close
Pruebe reiniciando o desconectando y volviendo a iniciar sesión.
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.
Me alegra que hayas encontrado una solución, ¿podrías incluir un resumen de los pasos en tu respuesta, solo para que esta respuesta sea más útil que solo un enlace? ¡Gracias!
slm
Estaba buscando una manera de automatizar y apagar mi trackpad al inicio. El comando que ingresé en la Terminal fue 'sudo modprobe -r psmouse' Esto apagaría el trackpad mientras estaba en la sesión actual. Quería automatizar esto en el arranque. Investigué un poco y escribí un script modificando el archivo /etc/rc.local, agregando 'sudo modprobe -r psmouse. Luego, emite los siguientes comandos desde la Terminal: 'sudo mv / filename /etc/init.d/' 'sudo chmod + x /etc/init.d/filename' 'sudo update-rc.d default de filename' Ahora el panel táctil está apagado Al inicio.
Respuestas:
Algo como Cron ?
Tenga en cuenta la
@reboot
entradaEste es el enfoque más flexible, y el más parecido a las "Tareas Programadas" de Windows (mejor en realidad).
fuente
/etc/cron.d
o llame a crontab desde su programa sin que ellos lo sepan.Inicio automático de Xorg
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/autostart
supone que la carpeta es una forma neutral para el escritorio de definir entradas de ejecución automática./etc/xdg/autostart
es 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).Inicio automático como un servicio systemd
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=myuser
Restart=on-failure|on-watchdog|on-abnormal|always
Type=simple|forking|oneshot|notify|dbus
Wants=network-online.target
en el[Unit]
sección).Un servicio de ejemplo que inicia un demonio telegram-cli. Colocarlo en
/etc/systemd/system/tg.service
.Ahora puede habilitar el servicio para iniciar automáticamente:
Comience el servicio:
Detener el servicio:
Verifica el estado:
Deshabilitar el servicio:
Para ahorrarle un tipeo adicional, puede agregar su
~/.bashrc
línea yalias sc='sudo systemctl $*'
luego podrá acortar los comandos anteriores para, por ejemplo,sc start tg
.Más información:
fuente
Sí, es posible ejecutar programas al inicio en Linux definiendo las rutas a los ejecutables
rc.local
que residen en el directorio/etc
o/etc/rc.d
, por ejemplo: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.
fuente
cron
programador es su amigo.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
fuente
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.
fuente
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.
fuente