终于搞定了
将/usr/sbin/init换成/usr/lib/systemd/systemd --system --unit=basic.target
实际上,前者是后者的符号链接,真正执行的是后者。
两者执行的时候都同样会卡住,卡住是啥意思呢,stackoverflow的原话是no return,即它执行完了,停在那里了,没有退出它的执行上下文,一直停在了那里,即没有回到可以输入Linux命令的状态,啥都不能输入!!
但是,但是,但是,
前者执行必须要占用PID 1号进程,后者也不是1号进程。
但是,但是,但是,
Docker的机制是只能有一个前台进程,而且是PID 1号进程!!
明白了吗,和/usr/sbin/init冲突了!!
都要用1号进程,但是却只能有一个1号进程。
你死我活,水火不相容,将业务进程(业务进程设置成后台,命令后面加个&)和/usr/sbin/init,放在一个sh脚本中,/sbin/init一执行,开始上位,业务进程就得被杀死,就得退位。
网友评论