Ejecutar un comando al inicio

Ejecutar un comando al inicio

¿Cómo haría para ejecutar un comando al inicio en ArchLinux usando Systemdlike rc.localin Sysv?

Respuesta1

Depende del comando. Para los casos más comunes, ustednoNecesito un comando.

  • Si desea ajustar un sysctl (un archivo en /proc/sys), se pueden configurar en/etc/sysctl.d/*.conf(generalmente 99-sysctl.confo 99-local.conf;pagina del manual):

    kernel.sysrq = 1
    kernel.pid_max = 4194304
    
  • Si es un parámetro de módulo en /sys/modules, debe configurarse cuando el módulo se carga por primera vez, en/etc/modprobe.d/*.conf(en general modprobe.conf; consulte la página del manual):

    options kafs rootcell=stacken.kth.se
    
  • Si desea escribir en un parámetro del dispositivo en /sys, o si desea ejecutar un programa para cambiar la configuración del dispositivo, escriba unudevregla que haría esto cuando el dispositivo esté enchufado y puesto en/etc/udev/rules.d/*.rules. La página del manual es udev(7), y le resultará udevadm infoútil cuando intente buscar el dispositivo correcto.

    ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*", \
        RUN+="/usr/bin/ethtool -s %k wol d"
    
    # This rule checks if a device has an attribute in its /sys subdir:
    ACTION=="add", \
        SUBSYSTEM=="scsi_host", \
        TEST=="link_power_management_policy", \
        ATTR{link_power_management_policy}="medium_power"
    
  • Si desea escribir en un archivo en cualquier otro lugar, o crear un archivo o directorio, use /etc/tmpfiles.d(pagina del manual).

  • Si quierescargaun módulo, ponga su nombre en un archivo en/etc/modules-load.d/*.conf(pagina del manual).

  • Finalmente, si desea ejecutar un comando general o iniciar un demonio, escriba un .servicearchivo unitario (una de las muchas páginas del manual). Ponlo adentro/etc/systemd/system/*.servicey utilice los numerosos ejemplos de /lib/systemd/system. Se gestionará a través de systemctl.

    Algunas cosas a tener en cuenta: elType=El parámetro debe configurarse correctamente ( simplevs forkingvs oneshot), y el ExecStart=parámetro requiere una línea de comando simple y no acepta una sintaxis similar a la de un shell (no >, no &&, no, $(...)etc., solo simple $ENVVARy %x).

    Es posible solicitar servicios después de que aparezca un dispositivo específico, usando (p. ej. ).After=name.deviceAfter=sys-subsystem-net-devices-%i.device

Ambos#archlinuxy#sistemadtener sus canales IRC en elnodo librered.

información relacionada