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: 1) A unit may be statically enabled by being symlinked from another unit's .wants/ or .requires/ directory. 2) A unit's purpose may be to act as a helper for some other unit which has a requirement dependency on it. 3) A unit may be started when needed via activation (socket, path, timer, D-Bus, udev, scripted systemctl call, ...). 4) In case of template units, the unit is meant to be enabled with some instance name specified. 二、错误原因 1. 无Install字段; 2. 添加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(8) ConditionFileIsExecutable=/etc/rc.local After=network.target [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 RemainAfterExit=yes GuessMainPID=no [Install] WantedBy=multi-user.target 3. 重新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. 4. 查看生成文件: root@zengjf:/etc/systemd/system/multi-user.target.wants# ls -al rc-local.service lrwxrwxrwx 1 root root 36 Apr 19 20:00 rc-local.service -> /lib/systemd/system/rc-local.service root@zengjf:/etc/systemd/system/multi-user.target.wants# 5. 创建/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 0 6. 重启查看输出; root@zengjf:~# cat /etc/zengjf ------------------------------- rc.local -------------------------------