
¿Cómo haría para ejecutar un comando al inicio en ArchLinux usando Systemd
like rc.local
in 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
(generalmente99-sysctl.conf
o99-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 generalmodprobe.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 esudev(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
.service
archivo unitario (una de las muchas páginas del manual). Ponlo adentro/etc/systemd/system/*.service
y utilice los numerosos ejemplos de/lib/systemd/system
. Se gestionará a través desystemctl
.Algunas cosas a tener en cuenta: el
Type=
El parámetro debe configurarse correctamente (simple
vsforking
vsoneshot
), y elExecStart=
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$ENVVAR
y%x
).Es posible solicitar servicios después de que aparezca un dispositivo específico, usando (p. ej. ).
After=name.device
After=sys-subsystem-net-devices-%i.device
Ambos#archlinuxy#sistemadtener sus canales IRC en elnodo librered.