Выполнение команды при запуске

Выполнение команды при запуске

Как мне запустить команду при запуске ArchLinux, используя, Systemdнапример rc.local, Sysv?

решение1

Зависит от команды. Для наиболее распространенных случаев, выненужна команда.

  • Если вы хотите настроить sysctl (файл в /proc/sys), это можно сделать в/etc/sysctl.d/*.conf(в общем 99-sysctl.confили 99-local.conf;страница руководства):

    kernel.sysrq = 1
    kernel.pid_max = 4194304
    
  • Если это параметр модуля в /sys/modules, его следует задать при первой загрузке модуля, в/etc/modprobe.d/*.conf(в общем случае modprobe.conf; см. страницу руководства):

    options kafs rootcell=stacken.kth.se
    
  • Если вы хотите записать параметр устройства в /sysили запустить программу для изменения настроек устройства, напишитеудевправило, которое будет делать это, когда устройство подключено и помещено в/etc/udev/rules.d/*.rules. Страница руководства — udev(7), и она будет вам udevadm infoполезна при выборе подходящего устройства.

    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"
    
  • Если вы хотите записать файл в другом месте или создать файл или каталог, используйте /etc/tmpfiles.d(страница руководства).

  • Если вы хотитенагрузкамодуль, поместите его имя в файл в/etc/modules-load.d/*.conf(страница руководства).

  • Наконец, если вы хотите выполнить общую команду или запустить демон, напишите .serviceфайл модуля (одна из многих страниц руководства). Положите его в/etc/systemd/system/*.service, и используйте множество примеров в /lib/systemd/system. Он будет управляться через systemctl.

    Несколько вещей, которые следует отметить:Type=параметр должен быть установлен правильно ( simplevs forkingvs oneshot), а ExecStart=параметр требует простой командной строки и не принимает синтаксис, подобный синтаксису оболочки (no >, no &&, no $(...)и т. д., только simple $ENVVARи %x.)

    Заказать услуги можно после появления конкретного устройства, используя (например ).After=name.deviceAfter=sys-subsystem-net-devices-%i.device

Оба#архлинукси#системдимеют свои IRC-каналы насвободный узелсеть.

Связанный контент