
Como eu executaria um comando na inicialização do ArchLinux usando Systemd
like rc.local
in 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
(geralmente99-sysctl.conf
ou99-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
(geralmentemodprobe.conf
; consulte a página de manual):options kafs rootcell=stacken.kth.se
Se você quiser escrever em um parâmetro do dispositivo
/sys
ou 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
.service
arquivo de unidade (uma das muitas páginas de manual). Coloque dentro/etc/systemd/system/*.service
e use os muitos exemplos em/lib/systemd/system
. Será gerenciado através dosystemctl
.Algumas coisas a serem observadas: o
Type=
O parâmetro deve ser definido corretamente (simple
vsforking
vsoneshot
), e oExecStart=
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$ENVVAR
e%x
.)É possível solicitar serviços após o aparecimento de um dispositivo específico, usando (ex .).
After=name.device
After=sys-subsystem-net-devices-%i.device
Ambos#archlinuxe#sistemadtêm seus canais de IRC nonó livrerede.