我正在定义要在不同发行版中使用的通用 bash 文件。我需要一种方法来检查系统是使用 systemd 还是 sysvinit (/etc/init.d/)。我需要这个,所以我运行适当的命令来启动服务。检查这个的安全方法是什么?我目前检查 systemctl 命令是否存在,但这真的是一个选项,因为可能存在 systemctl 命令可用的情况,但这并不一定意味着实际使用了 systemd?
这是我当前 bash 脚本的摘录:
#!/bin/sh
if [ command -v systemctl >/dev/null ]
then
systemctl service start
else
/etc/init.d/service start
fi
Run Code Online (Sandbox Code Playgroud) 通常在服务器上配置与安全相关的补丁的自动更新。因此,如果我运行的是 MySQL 5.5 并且出现了新的安全补丁,Ubuntu Server 将应用升级并重新启动 MySQL 以自动保护我。显然,这可以被禁用,但它对我们这些有点懒惰的人有帮助;)
Docker 容器内部是否存在这样的概念?如果我在 Docker 容器中运行 MySQL,是否需要不断停止容器,在其中打开一个 shell,然后更新和升级 MySQL?
因此,根据Ubuntu LXC 文档中的文档,在撰写本文时可以找到以下声明:
一个 NIC 一次只能存在于一个命名空间中,因此传递到容器中的物理 NIC 在主机上是不可用的。
现在一个物理网卡 (NIC) 可以在/etc/network/interfaces(Debian/Ubuntu) 中共享多个这样的 IP :
auto eth0 eth0:1
iface eth0 inet static
address 192.168.0.100/24
gateway 192.168.0.1
iface eth0:1 inet static
address 192.168.0.200
netmask 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
也可以使用其他发行版上的相应配置来完成相同的操作。
现在的问题是:可以eth0并且eth0:1被分配到不同的命名空间,还是会自动将另一个分配给相同的命名空间?
lxc ×2
docker ×1
linux ×1
linux-kernel ×1
namespace ×1
networking ×1
scripting ×1
systemd ×1
sysvinit ×1