您尚未登录。

#1 2018-12-01 19:00:39

matrikslee
会员
注册时间: 2017-04-21
帖子: 171
个人网站

WSL下的Arch无法用systemd现在有解决or折衷的办法吗?

因为PID=1的进程是/init而不是systemd,没法用systemctl,极度蛋疼。
依赖与systemctl的services全部没法用。。


什么都想学,什么也没学会.

离线

#2 2018-12-01 20:14:44

yw662
大会员
注册时间: 2018-10-10
帖子: 73

Re: WSL下的Arch无法用systemd现在有解决or折衷的办法吗?

Systemd本身是作为pid 1设计的,而wsl的pid 1需要和windows侧通信,所以这种东西只能等ms解决。

如果是想要实现一个类systemd的daemon管理程序的话,那么有这么几个问题
1.windows的wsl安装是per user的,所以这个daemon必须在用户登录之后由某个东西启动。
同时,那个东西必须是一个windows侧的daemon,不然的话,如果那个东西结束,它打开的bash进程就会被结束,这样你所有linux侧的daemon都会结束。
2.你需要能通过那个windows侧的daemon和linux侧的daemon通信,然后每当你需要管理daemon的时候,都要用这个方法。

2的实现我大概能想到几种
比如说把stdio当作管道使用。但是这两个daemon中间隔着个bash,有些难受。
或者windows侧在随机tcp端口开个socket或者tls,用命令行参数传递给linux侧,然后linux侧连过去。类似这种的实现也是挺常用的了。
反过来linux侧在随机端口开socket或者tls,windows侧连接,这个看起来没上面那个好。


无论哪个办法,最后都会给你提供一个双向的pipe,这里面的协议就得自己设计了:-)

感觉对于个人来说不是一个很小的工程。。。

最近编辑记录 yw662 (2018-12-01 20:14:55)


javascript是世界上最好的语言

离线

#3 2018-12-02 08:57:48

matrikslee
会员
注册时间: 2017-04-21
帖子: 171
个人网站

Re: WSL下的Arch无法用systemd现在有解决or折衷的办法吗?

yw662 说:

感觉对于个人来说不是一个很小的工程。。。

看来还是原生的Arch好用,WSL什么的都是异端 (囧


什么都想学,什么也没学会.

离线

页脚