栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[问题已处理]-在容器中使用systemctl服务秒失败

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[问题已处理]-在容器中使用systemctl服务秒失败

导语:交付需要把所有服务放到一个容器中,并且控制台重启对应服务是通过systemctl操作的。因此需要对应容器支持systemctl

要支持systemctl需要--privileged=true

docker run -d -i -t --privileged=true --name java-systemd -v /sys/fs/cgroup:/sys/fs/cgroup:ro test:01

创建/lib/systemd/system/zk.service 并且执行systemctl enable zk.service

systemctl启动zk发现zk光速失败,并且zookeeper.out里没有日志

手动启动服务没有问题。

容器内/etc/profile如下

容器env信息

猜测是java环境的问题。

在/lib/systemd/system/zk.service加上一条

Environment="PATH=/opt/jdk1.8.0_151/bin:/opt/jdk1.8.0_151/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

这里测试在容器的/etc/profile中添加以下内容也不行 必须要在上面添加,可能需要添加在~/.bashrc下

export JAVA_HOME=/opt/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

完整zk.service如下

[Unit]
Description=zookeeper.service
After=network.target
[Service]
Type=forking
Environment="PATH=/opt/jdk1.8.0_151/bin:/opt/jdk1.8.0_151/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
#Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin://usr/local/jdk1.8.0_231/bin"
User=root
Group=root
ExecStart=/opt/zk1/zookeeper-3.4.10/bin/zkServer.sh  start
ExecStop=/opt/zk1/zookeeper-3.4.10/bin/zkServer.sh   stop
[Install]
WantedBy=multi-user.target

修改后重启zk服务

启动成功

如果其他服务启动失败 应该也是env相关的问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/979037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号