Jor*_*yle 1 arch-linux systemd sysvinit
我将如何在 ArchLinux 中使用Systemdlike rc.localin在启动时运行命令Sysv?
取决于命令。对于最常见的情况下,你并不需要一个命令。
如果你想调整一个 sysctl(一个文件/proc/sys),那些可以在/etc/sysctl.d/*.conf(一般99-sysctl.conf或99-local.conf;手册页)中配置:
kernel.sysrq = 1
kernel.pid_max = 4194304
Run Code Online (Sandbox Code Playgroud)如果它是 下的模块参数/sys/modules,则应在模块首次加载时设置,在/etc/modprobe.d/*.conf(通常modprobe.conf;参见手册页):
options kafs rootcell=stacken.kth.se
Run Code Online (Sandbox Code Playgroud)如果要写入 中的设备参数/sys,或者要运行程序来更改设备的设置,请编写一个udev规则,在插入设备并将其放入 中时执行此操作/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"
Run Code Online (Sandbox Code Playgroud)如果要在其他任何位置写入文件,或创建文件或目录,请使用/etc/tmpfiles.d(手册页)。
如果要加载模块,请将其名称放在/etc/modules-load.d/*.conf(手册页)中的文件中。
最后,如果您想运行一个通用命令或启动一个守护进程,请编写一个.service单元文件(许多手册页之一)。将其放入 中/etc/systemd/system/*.service,并使用 中的许多示例/lib/systemd/system。它将通过systemctl.
需要注意的几点:Type=参数必须设置正确(simplevs forkingvs oneshot),并且ExecStart=参数需要一个简单的命令行并且不接受类似shell的语法(no >, no &&, no$(...)等等,只有简单的$ENVVAR和%x. )
可以在特定设备出现后订购服务,使用(例如)。After=name.deviceAfter=sys-subsystem-net-devices-%i.device
无论#archlinux和#systemd有自己的IRC频道Freenode的网络。
| 归档时间: |
|
| 查看次数: |
2637 次 |
| 最近记录: |