systemctl enable rc-local.service error

时间:2023-03-09 06:19:44
systemctl enable rc-local.service error
/*******************************************************************************
* systemctl enable rc-local.service error
* 说明:
* 在YOCTO中使能rc.local发现无法enable;
*
* 2019-6-10 深圳 宝安西乡 曾剑锋
******************************************************************************/ 一、Error
root@zengjf:/etc/systemd/system# systemctl enable rc-local.service
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
) A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
) A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
) A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).
) In case of template units, the unit is meant to be enabled with some
instance name specified. 二、错误原因
. 无Install字段;
. 添加Install字段:
root@zengjf:/lib/systemd/system# cat rc-local.service
# SPDX-License-Identifier: LGPL-2.1+
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version. # This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator()
ConditionFileIsExecutable=/etc/rc.local
After=network.target [Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=
RemainAfterExit=yes
GuessMainPID=no [Install]
WantedBy=multi-user.target
. 重新enable:
root@zengjf:/etc/systemd/system# systemctl enable rc-local.service
Created symlink /etc/systemd/system/multi-user.target.wants/rc-local.service → /lib/systemd/system/rc-local.service.
. 查看生成文件:
root@zengjf:/etc/systemd/system/multi-user.target.wants# ls -al rc-local.service
lrwxrwxrwx root root Apr : rc-local.service -> /lib/systemd/system/rc-local.service
root@zengjf:/etc/systemd/system/multi-user.target.wants#
. 创建/etc/rc.local,并赋予执行权限;
root@zengjf:~# cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
# echo "-------------------------------" >> /etc/zengjf
echo rc.local >> /etc/zengjf
echo "-------------------------------" >> /etc/zengjf exit
. 重启查看输出;
root@zengjf:~# cat /etc/zengjf
-------------------------------
rc.local
-------------------------------