Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué scripts se ejecutarán automáticamente cuando se inicie Ubuntu y después de iniciar sesión?

¿Qué scripts se ejecutarán automáticamente cuando se inicie Ubuntu y después de iniciar sesión?

1. Programas que se ejecutan automáticamente al inicio

Después de que Linux se carga, inicializa el hardware y los controladores del dispositivo, y luego ejecuta el primer proceso, init. Normalmente, puede permitir que init inicie automáticamente otros programas modificando los scripts en los directorios /etc/rc o /etc/rc.d o /etc/rc?.d. Por ejemplo, editando el archivo /etc/rc.d/rc.local (generalmente el último script en el inicio del sistema) y agregando una línea "xinit" o "startx" al final del archivo, puede ingresar directamente el X ventana después del inicio.

Muchos servicios (como mysql, memcache, etc.) deben ejecutarse automáticamente después del inicio.

2. Ejecutar automáticamente el programa al iniciar sesión

Cuando el usuario inicia sesión, bash primero ejecutará automáticamente el script de inicio de sesión global: / Luego, bash buscará secuencialmente en la casa del usuario. directorio Uno de los tres archivos especiales: /.bash_profile, /.bash_login /.bash_profile, /.bash_login, /.bash_profile y /.bash_profile, pero solo se ejecuta el primer archivo encontrado. Por lo tanto, puede ejecutar automáticamente ciertos programas cuando el usuario inicia sesión (similar a Autoexec.bat en DOS) simplemente agregando comandos al archivo anterior según sea necesario.

Tenga en cuenta que no es el script .bashrc el que se ejecuta automáticamente, sino el script .profile.

Puedes ver el código fuente de .profile:

# si ejecutas bash

if [ -n "$BASH_VERSION" ]; entonces

;

# incluir .bashrc si existe

if [ -f "$HOME/.bashrc" ] entonces

,..."$HOME/.bashrc"<; / p>

fi

fi

# Establecer RUTA e incluir el contenedor privado del usuario si existe

if [ -d " $HOME/bin " ]; luego

PATH="$ HOME/bin:$PATH"

fi

Como puedes ver, usualmente usamos el archivo .bashrc es simplemente cargado a través del script .profile.

Como resultado, muchos estudiantes que utilizan zsh de forma predeterminada harán que las variables de entorno escriban scripts .bashrc simplemente como se indica en algunos artículos y no funcionen, como los estudiantes que usan rvm.

3. Ejecute automáticamente el programa al cerrar sesión

Al cerrar sesión, bash ejecutará automáticamente su script de cierre de sesión personal /.bash_logout. Por ejemplo, agregue el comando "tar -cvzf c.source. tgz *.c" en /.bash_logout, y el comando "tar" se ejecutará automáticamente cada vez que cierre sesión para hacer una copia de seguridad del archivo *.c.

4. Ejecutar programas automáticamente con regularidad

Linux tiene un proceso demonio llamado crond, cuya función principal es verificar periódicamente el contenido de un conjunto de archivos de comandos en /var/spool/. directorio cron y ejecute los comandos en estos archivos a la hora establecida. Los usuarios pueden utilizar el comando crontab para crear, modificar y eliminar estos archivos de comandos.

Por ejemplo, para crear un archivo crondFile con el contenido "00 9 23 Jan *HappyBirthday", ejecute el comando "crontab cronFile" y luego cada vez que se ejecute el comando "crontab cronFile" el 23 de enero. , el sistema ejecutará automáticamente el programa "FelizCumpleaños" a las 9:00 am ("*" significa sin importar el día de la semana).

Debido a que el archivo .bashrc o .profile se ejecuta al iniciar sesión, no se puede ejecutar sin iniciar sesión, o qué hacer si desea ejecutar un servicio. No hay ningún usuario conectado en este momento. , por lo que no habrá ninguna variable de entorno correspondiente.

Por ejemplo, el usuario www que inicia el servicio Rails.

Usa el parámetro -i del comando sudo

Ver el manual:

-i [comando]

-i (simular inicio de sesión inicial) ejecuta el shell especificado por la entrada de la base de datos de contraseñas del usuario de destino como shell de inicio de sesión. Esto significa que el shell leerá archivos de recursos específicos de inicio de sesión, como .profile o .login. Si se especifica un comando, se pasa al shell para su ejecución mediante la opción -c del shell. Si no se especifica ningún comando, se ejecuta un shell interactivo. sudo intentará cambiar al directorio de inicio del usuario antes de ejecutar el shell. Las políticas de seguridad deben inicializar el entorno con un conjunto mínimo de variables, similar al entorno cuando el usuario inicia sesión. La sección "Entorno de comando" del manual sudoers(5) documenta cómo la opción -i afecta el entorno en el que se ejecuta un comando cuando se utiliza la política sudoers.