求助 macOS 多用户使用同一软件场景下遇到的问题


如题,macOS 系统,多用户,A 和 B ,都是管理员权限(这个应该无所谓)。 A 用户有个 X 软件的开机启动项,X 软件会设置系统代理之类的影响网络的功能。


  • 场景 1:A 用户首先开机,X 软件自动启动,用一阵之后,锁定屏幕(未登出),B 用户接着用;
  • 场景 2:B 用户首先开机,X 软件未启动,需要的话自己启动 X 软件。


场景 2 是没问题的。

场景 1 的问题是:

1 、如果 B 用户也把 X 软件设置为开机启动,会因为开了两个 X 软件,发生端口冲突等异常;

2 、如果 B 用户不把 X 软件设置为开机启动,直接正常用的时候,他无法控制 X 软件(因为是 A 用户启的,在后台运行),会有时因为 X 软件导致的网络问题无法正常上网。


诉求: 场景 1 切换 B 用户时,自动关掉该 X 软件;之后切换回 A 用户时,再次自动重新打开该 X 软件; 或者让 B 用户也能看到 X 软件( X 软件启动后会出现在 A 用户的菜单栏)或控制这软件(重新打开的效果是重复开、有两个进程)。


如何做到?谢谢🙏

Mac mini (2023 with M2)

发布日期 2023年2月22日 上午1:45

回复

类似问题

回复量: 11

2023年2月22日 上午9:35 回应 LouisLoong

根据你的描述,严格来说,这个软件的启动方式不是“开机启动”,而是登录项中“登录时打开”,也就是用户登录时(后)启动。区别是,它们两个运行于不同的用户空间环境。


其实你的场景是,登录前该软件就已经运行,这样就不会产生冲突。当然,可能还有不同的需求,这个方法并不适合,比如,软件是按需启动的。


一般来说,最好是这个软件本身支持这种使用场景,也就是多用户环境。除非这个软件依赖于用户环境,那么一种可行的方法就是不系统级别的 macOS 启动后运行,至少可以分离出来一个自己的系统服务。至于按需启动,可以给用户端一个界面来打开和关闭的选项就可以了。所以,最好是联系开发者,建议其改进。


如果非要让客户自己来管理,不是不可能,而是有些不确定因素,可能无法实现或者逻辑太复杂导致不好用或者有今后的兼容性问题等等,比如前面说的,是否依赖用户环境。


像这种的讨论,只能从“广义”来说,用户自己也是可能解决的,比如一个思路就是,让系统运行一个系统服务,它的任务是监视当前登录用户,如果发现当前用户发生改变,那么强制退出特定的软件。但是这个可能有一些延迟,而且用户无法控制其何时运行。

还有一个是,设定一个登录启动项,每次登陆都会强制退出这个软件,让每个用户需要的时候自己启动该软件。


还有前面 Jerry 问的,这个“X”到底是谁,如果谁用过遇到过类似情景,可能会帮你直接说清楚。

2023年2月23日 下午8:03 回应 LouisLoong

只是说出软件名称没有关系的。


如果配置都只在用户下,那么把它弄成开机启动,可能会有难度。

如果想尝试,可以先开启 root 用户,登录 root 后,设置好后,切换到其它用户看看是否行得通。如果还是不行就不要想了,得软件支持。


既然所有用户都是管理员,那么一个脚本很简单就能实现。

一个点:可以放在/Users/Shared 里面,然后在桌面上放上它的软连接或者别名,这样今后如果需要改动,只改动一个地方即可。

2023年2月23日 下午6:36 回应 tonyfromcalgary

我怕违规就没明说。

谢谢你的细致讲解,看明白了。

这软件确实存在于你说的“登录项”中,而非“开机启动”,想问下在哪看、以及设置“开机启动”呢?

该软件我不太确定本身是否支持你说的多用户环境,但他的配置是存在于每个User自身的目录,所以每个用户启动他后,是有自己的不同配置的。(当然,我的使用场景,能够开机启动,所有人都用同一套也是没问题的)


我现在的思路就是按你说的,看能否把他开机就启动(先于用户登录),使得每个用户都能看到它,不知道能否做到。

如果不行,我现在想的是,写一个脚本,结束这软件的后台进程再重启它,扔在其他用户的桌面上,不行了就让他们运行一次。感觉比你说的写一个系统服务来监视可能要省事点。


再次感谢!


[经过版主编辑]


这个主题已被系统或社区团队关闭。 你可以为你认为有帮助的任何帖子投票,也可以在社区中搜索其他答案。

求助 macOS 多用户使用同一软件场景下遇到的问题

欢迎来到 Apple 支持社区
Apple 客户在其产品方面互相帮助的论坛。使用您的 Apple 帐户开始畅游其中吧!!