我在 path 有一个 systemd-machined 插件/etc/systemd/system/systemd-machined.service.d/10-machined-pid-file.conf。当我跑步时,systemctl status systemd-machined我确实看到了线条
Drop-In: /etc/systemd/system/systemd-machined.service.d
??10-machined-pid-file.conf
Run Code Online (Sandbox Code Playgroud)
但是,我在 /var/run/ 中没有看到 PID 文件。基于我的访问:
[Serivce]
PIDFile=/var/run/machined.pid
Run Code Online (Sandbox Code Playgroud)
我相信创建该 PID 文件应该没有任何问题。有什么我想念的吗?
我有一个在 GCE 上运行的 CoreOS 集群,我注意到所有 GCE 实例的一个问题是,只要您通过 Google Cloud 平台上的项目进行身份验证,您就可以登录服务器。这对我来说是一个问题,因为团队中的任何人,或进入项目的任何人,都可以像任何人一样直接进入服务器。我想禁用它,只使用我在云配置文件中创建的用户,这些用户指定了过期的 ssh 密钥和密码。在这样做时,我很好奇谷歌如何在 GCE 上创建用户?有没有人找到禁用它的方法?
user-management ssh-keys google-compute-engine coreos google-cloud-platform
我有一个nginx conf文件,由于使用环境变量,我有一个 shell 脚本 echo,我将该文件称为nginx.conf.template,然后我将回显结果放入实际的 中nginx.conf,请参阅下面的 shell 脚本:
#!/bin/sh
function subst() { eval echo -E "$2"; }
mapfile -c 1 -C subst < nginx.conf.template > nginx.conf
Run Code Online (Sandbox Code Playgroud)
我遇到的唯一问题是它删除了所有缩进的空格,我想这会导致问题,但我运行该nginx服务器的 docker 容器似乎没问题。我没有缩进有什么关系吗?如果确实重要, echo 可以保留所述空格吗?
我有一个 docker 容器,运行非常裸的 debian 版本。有了这个,我必须先在外部安装 systemd。为此,我有一个运行安装的 docker 容器,然后将其提交到一个映像,然后从该映像运行 systemd。当我 bash 进入容器时,在文件系统的任何地方都找不到 machinectl,并且 machined 似乎没有运行。我需要安装特定的软件包吗?或者由于我一开始就在容器中,是否无法进行机加工?我承认容器中的容器是不受欢迎的,但这个容器的目的是运行与 systemd-machined 接口的测试。
重现步骤:
docker run --privileged --cidfile=/tmp/cidfile debian:stretch bash -c 'apt-get update && apt-get install -y build-essential git dbus libsystemd-dev libpam-systemd'
docker commit `cat /tmp/cidfile` deb-machined-test
rm /tmp/cidfile
docker run -d --cidfile=/tmp/cidfile --privileged deb-machined-test /bin/systemd --system
Run Code Online (Sandbox Code Playgroud)