博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RHEL/CentOS 7中通过systemd service持久化网络命名空间
阅读量:4179 次
发布时间:2019-05-26

本文共 1111 字,大约阅读时间需要 3 分钟。

对于Linux系统中创建的定制的网络命名空间,目前没有理想的方法使其持久化,即能够在Linux系统启动时应用定制的网络命名空间的配置。

本文创建了一个systemd service,通过在Linux系统启动时执行其ExecStart脚本,从而实现了每次Linux系统启动时对定制的网络命名空间的配置。创建一个systemd service的过程如下:

1. 定义一个可执行的脚本文件,用以配置网络命名空间

创建一个脚本文件/usr/local/myns/my-network-namespace

#!/bin/bash#set -x##clean upip netns del myns &> /dev/null...

设置“x”权限chmod a+x /usr/local/myns/my-network-namespace

2. 创建一个PID文件,以保存服务的主进程的PID(可选)

3. 创建一个环境变量文件,以保存服务的Shell变量(可选)

4. 在/usr/lib/systemd/system/目录下创建一个systemd service的Unit配置文件myns.service

创建service unit配置文件/usr/lib/systemd/system/myns.service

[Unit]Description=My network namespace service for Docker containerAfter=network.target[Service]Type=oneshot#optionalPIDFile=/usr/local/myns/pidfileEnvironmentFile=/usr/local/myns/envfileExecStart=/usr/local/myns/my-network-namespace[Install]WantedBy=default.target

说明:配置网络命名空间的service只需要在Linux系统启动的时候执行一次,所以service的Type=oneshot。

           Linux系统的default.target默认即为multi-user.target。

设置执行权限chmod 664 /usr/lib/systemd/system/myns.service

5. 通知Systemd加载新的service unit配置文件

systemctl daemon-reload

6. 通过systemctl操作服务

systemctl enable|start|status|stop myns.service

 

 

参考链接:

转载地址:http://chlai.baihongyu.com/

你可能感兴趣的文章
Chrome添加调试机型
查看>>
Mysql手动提交事务
查看>>
Spring计时器StopWatch的使用
查看>>
LockSupport中的park() 和 unpark()与Object中的wait()和notify()
查看>>
Java并发| CountDownLatch、Semaphore和CyclicBarrier
查看>>
Spring的BeanUtils的copyProperties方法使用注意事项
查看>>
JAVA8 stream
查看>>
SpringBoot | 异步编程
查看>>
Java并发| Exchanger和Phaser
查看>>
IDEA RESTful Client 数据请求
查看>>
轻松读懂字节码文件
查看>>
记一下对String#intern的理解
查看>>
Tomcat多种方式部署多个项目
查看>>
随机字符串
查看>>
ZipUtils工具类
查看>>
1071 - Specified key was too long; max key length is 767 bytes
查看>>
SQLSERVER的LOG文件过于庞大
查看>>
Mycat+SpringBoot完成分库分表
查看>>
基于JMH检验多种生成随机数方法的效率
查看>>
读写文件效率测试
查看>>