在 docker-compose 中启动 systemd 并调用另一个函数
Start systemd in docker-compose and call another function
我正在尝试使用 /usr/lib/systemd/systemd
在 SuSE 容器中启动 systemd
,然后调用另一个函数,例如 docker-compose 或 [=28 中的 echo "Hi"
=].这就是 /bin/bash -c "/usr/lib/systemd/systemd && echo 'Hi'"
理论上会做的事情,但由于 bash 进程有 PID1
而 systemd
有,所以 systemd
没有启动是个大问题PID2
导致 systemd
无法从用户域启动的错误消息。
我在 Yelp 的 dumb-init
上取得了部分成功(因为它接受了 运行 之后的参数),但更喜欢完整的 systemd。此外,如果有一个简单的 oneliner 而不是必须调用脚本(如果这是一个解决方案,因为这可能也会导致 bash-process 具有 PID1
),这将是非常好的。 =22=]
根本不清楚为什么要启动 systemd。您要使用 systemd
的哪个功能?
如果只是想在 systemd 启动后 运行 一些东西,那么编写一个简单的 systemd .service
文件是可行的方法。
有关 systemd 配置文件的更多信息,请参阅 man systemd.service
和 man systemd.unit
。
我正在尝试使用 /usr/lib/systemd/systemd
在 SuSE 容器中启动 systemd
,然后调用另一个函数,例如 docker-compose 或 [=28 中的 echo "Hi"
=].这就是 /bin/bash -c "/usr/lib/systemd/systemd && echo 'Hi'"
理论上会做的事情,但由于 bash 进程有 PID1
而 systemd
有,所以 systemd
没有启动是个大问题PID2
导致 systemd
无法从用户域启动的错误消息。
我在 Yelp 的 dumb-init
上取得了部分成功(因为它接受了 运行 之后的参数),但更喜欢完整的 systemd。此外,如果有一个简单的 oneliner 而不是必须调用脚本(如果这是一个解决方案,因为这可能也会导致 bash-process 具有 PID1
),这将是非常好的。 =22=]
根本不清楚为什么要启动 systemd。您要使用 systemd
的哪个功能?
如果只是想在 systemd 启动后 运行 一些东西,那么编写一个简单的 systemd .service
文件是可行的方法。
有关 systemd 配置文件的更多信息,请参阅 man systemd.service
和 man systemd.unit
。