最近在测试中发现,通过 systemd service 启动的 python 脚本无法加载系统 bashrc 内定义的环境变量。需要在 uint 中定义自定义环境变量才能生效。

首先建立自定义环境变量文件,如: /etc/env_addon,其中定义需要的环境变量:

ENV1=abcd
ENV2=5678

然后在 unit 的 service 块中加入 EnvironmentFile 指向建立的环境变量文件:

[Unit]
Description=demo
After=network.target nss-lookup.target

[Service]
User=root
EnvironmentFile=/etc/env_addon
ExecStart=/usr/bin/python /path/main.py
Restart=on-failure

[Install]
WantedBy=multi-user.target

重新加载并重启服务:

sudo systemctl daemon-reload
sudo systemctl restart demo.service

如果需要系统的 ~/.bashrc 同时加载这个自定义的环境变量文件,可以在 bashrc 中加入下面内容:

set -a; source /etc/env_addon; set +a

重新加载环境:

source ~/.bashrc

参考链接
Using a user's .bashrc in a systemd service
Using environment variables in systemd units Environment directive


最近发现我的局域网内网下的网速很慢,只有500M左右,达不到 1000M 的速度。我是通过 ipert3 进行测速的。

家里的网络是通过 esxi 下安装的 openwrt,ubuntu 等虚拟机控制的,通过 esxi 管理页面可以看到接口都运行在 1000M 全双工模式下,说明网线链接是没有问题的:
1.jpg

经过查询发现可以通过修改虚拟交换机的 mtu 值到 9000 来提高网络吞吐量从而加快网速。

阅读全文


我家里的主机使用 esxi 管理多个 vm 虚拟机,之前的文章介绍过 esxi 的安装及使用:ESXi 的安装与使用,需要安装的可以参考。

通过浏览器访问 vcenter 管理界面默认会强制 https 模式,但是访问端并没有安装 vcenter 管理网页的证书,所以会提示不安全的链接,下面介绍如何在 esxi 上安装自定义域名的 ssl 证书,并在客户机上安装。

阅读全文