安卓手机改造服务器——解决chroot下无法使用systemctl

在Linux Deploy中安装的CentOS7无法使用systemctl命令,没关系我们有其他办法


写在前面

对于这个问题,我也是第一次遇见。并没有深入研究,所有如果有哪些地方有问题,欢迎指正。

问题描述

当我们使用systemctl启动服务时它提示我们

[root@localhost ~]# systemctl start mariadb
Running in chroot, ignoring request.

或者使用service

[root@localhost ~]# service mariadb start
Redirecting to /bin/systemctl start mariadb.service
Running in chroot, ignoring request.

解决办法

参考文章:https://github.com/smaknsk/servicectl


安装

wget https://github.com/smaknsk/servicectl/archive/1.0.tar.gz
tar -xf 1.0.tar.gz -C /usr/local/lib/
ln -s /usr/local/lib/servicectl-1.0/servicectl /usr/bin/servicectl
ln -s /usr/local/lib/servicectl-1.0/serviced /usr/bin/serviced

使用

servicectl

sudo servicectl action service

‎此命令仅执行文件 /usr/lib/systemd/system/${service}.service中的${action}, 如果通过的操作启用或禁用,则 servicectl将在 ${service}.service上创建或删除symlink以供使用服务。‎

参数:

  • action - 可以是 {start, stop, restart, reload, enable, disable}
  • service -在/usr/lib/systemd/system/文件夹中的文件

serviced

sudo serviced action

‎此命令执行 ${action} 为所有启用服务。‎

参数:

  • action -默认是start,也可以是: {start, stop, restart, reload, disable}

例如

# inside chroot
sudo servicectl enable mariadb

# outside chroot: 
# init startup and run all enabled daemons
sudo chroot /path/to/chroot serviced

如果你知道更好的做法,请留下你的做法

上一篇:chroot


下一篇:生成 chroot 环境脚本 根据系统文件生成chroot环境