Executando um comando na inicialização

Executando um comando na inicialização

Como eu executaria um comando na inicialização do ArchLinux usando Systemdlike rc.localin Sysv?

Responder1

Depende do comando. Para os casos mais comuns, vocênãopreciso de um comando.

  • Se você deseja ajustar um sysctl (um arquivo em /proc/sys), eles podem ser configurados em/etc/sysctl.d/*.conf(geralmente 99-sysctl.confou 99-local.conf;página de manual):

    kernel.sysrq = 1
    kernel.pid_max = 4194304
    
  • Se for um parâmetro de módulo em /sys/modules, ele deverá ser definido quando o módulo for carregado pela primeira vez, em/etc/modprobe.d/*.conf(geralmente modprobe.conf; consulte a página de manual):

    options kafs rootcell=stacken.kth.se
    
  • Se você quiser escrever em um parâmetro do dispositivo /sysou se quiser executar um programa para alterar as configurações do dispositivo, escreva umudevregra que faria isso quando o dispositivo estiver conectado e colocado/etc/udev/rules.d/*.rules. A página do manual é udev(7), e você será udevadm infoútil ao tentar combinar o dispositivo certo.

    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"
    
  • Se você quiser gravar em um arquivo em qualquer outro lugar ou criar um arquivo ou diretório, use /etc/tmpfiles.d(página de manual).

  • Se você quisercarregarum módulo, coloque seu nome em um arquivo em/etc/modules-load.d/*.conf(página de manual).

  • Finalmente, se você quiser executar um comando geral ou iniciar um daemon, escreva um .servicearquivo de unidade (uma das muitas páginas de manual). Coloque dentro/etc/systemd/system/*.servicee use os muitos exemplos em /lib/systemd/system. Será gerenciado através do systemctl.

    Algumas coisas a serem observadas: oType=O parâmetro deve ser definido corretamente ( simplevs forkingvs oneshot), e o ExecStart=parâmetro requer uma linha de comando simples e não aceita sintaxe semelhante ao shell (no >, no &&, no $(...)e assim por diante, apenas simples $ENVVARe %x.)

    É possível solicitar serviços após o aparecimento de um dispositivo específico, usando (ex .).After=name.deviceAfter=sys-subsystem-net-devices-%i.device

Ambos#archlinuxe#sistemadtêm seus canais de IRC nonó livrerede.

informação relacionada