2moe / tmoe

TMOE, More Optional Environments.
https://doc.tmoe.me
Other
848 stars 80 forks source link

挂载/tmp目录后使用vnc快捷命令启动容器不会执行startvnc #251

Open Blackwood416 opened 1 year ago

Blackwood416 commented 1 year ago

Are you rooted?

No

Desktop environment

🐭 xfce

Container type

proot

Configuration

container value
os debian sid
arch arm64

host value
os android 12
arch arm64
terminal ?
tmoe latest

Describe the bug

容器挂载/tmp目录后使用容器vnc的快捷启动命令,只会跳转到vnc软件,而容器启动后不会自动执行startvnc

Screenshots

No response

How to reproduce

  1. 在termux的容器选项中启用挂载/tmp目录的选项
  2. 使用tmoe p d s a v启动容器和vnc
  3. 只跳转到了vnc界面,容器内并没有执行startvnc

Expected behavior

跳转到vnc界面,termux内容器启动后自动执行startvnc

Error Logs

Starting: Intent { cmp=com.realvnc.viewer.android/.app.ConnectionChooserActivity }

!/usr/bin/env bash

startvnc

~ ❯

Additional context

上面最后两行是我zsh的prompt。

我是在尝试配置termux-x11的时候遇到这个问题的,结果发现挂载/tmp目录后tmoe的vnc快捷启动用不了了。

我自己写了个脚本每次启动容器时把startvnc复制到容器内部的/etc/profile.d/permanent目录下,解决了容器启动后不会自动执行startvnc的问题,但是它每次启动会执行两次startvnc。

挂载/tmp目录后放在permanent目录下的脚本好像一定会执行两次的样子。

暂时还没有试过编辑entrypoint会是什么效果。

2moe commented 1 year ago

这是因为我当初把相关文件的存放位置定在了容器内部的 "/tmp"。 手动修改 "/tmp" 的挂载源后, 会导致容器内部的 "/tmp" 不是原来的 "/tmp"。 解决方法还蛮多的。比如:改变容器启动前的一些流程顺序,或者是执行相关操作时检测"/tmp"的挂载源,又或者修改相关操作所需的临时目录。 我估摸着可能会引入 breaking changes, 因此要等新版才能修复此 bug。

顺带一提,p d s a v 这种看起来很怪的参数用法会被废弃掉。 p d s a 代表一种属性,完全可以简化成一个名称,而不是四个参数。

2moe commented 1 year ago

关于执行2 次的问题,你把 /etc/zsh/zlogin 删掉再试试。

Blackwood416 commented 1 year ago

关于执行2 次的问题,你把 /etc/zsh/zlogin 删掉再试试。

亲测有效,感谢大佬👍