我如何强制 gnome-terminal 在站点范围内始终对所有用户使用 --disable-factory 选项?

How can I force gnome-terminal to always use --disable-factory option for all users, site-wide?

我的工作团队为几千个用户管理着几千台计算主机。我们有一个系统允许用户在农场中打开一个终端"somewhere",保持工作负载水平是其中的一个重要部分。我们依赖于能够为每个启动的终端进程处理记账。

用户要求 xterm、dtterm 和 gnome-terminal 进程是很常见的。 gnome-terminal 给我们带来了独特的挑战。当您启动 "new" gnome-terminal 进程时,如果您在同一台机器上的同一用户会话中已经有一个 "old" gnome-terminal 进程 运行,则 "new" 进程将 shell 命令传递给 "old" 进程,并且 shell/window 作为 "old" 进程树的一部分创建; "new" 进程退出。由于显而易见的原因,这导致我们的流程记帐出现问题。

可以通过提供 --disable-factory 选项来停止 gnome-terminal 的默认行为。但是我们无法训练我们所有的用户(8000+)记住每次他们在服务器场中请求 gnome-terminal 进程时使用这个选项。我们需要找到一种方法来锁定它,以便 gnome-terminal always 的行为就像给出 --disable-factory 选项一样。

有没有办法在站点范围内为所有用户配置此功能?我们不希望 "wrap" gnome-terminal 使用脚本在调用时注入选项,如果可能的话——这会起作用,但它很难维护,而且可能很脆弱。在某些 /etc/gconf 文件中添加一个密钥是理想的,但我不确定 gnome-terminal 会尊重什么(如果有的话)密钥...?

如有任何建议,我们将不胜感激! 谢谢

最轻松的方法是使用配置管理工具修改 gnome-terminal.desktop 文件以在 Exec= 行上传递 --disable-factory 选项。如果你想确保这不受 OS 升级的影响,我认为用户特定的 .desktop 文件在系统文件之前得到处理,所以将这个修改后的 .desktop 复制到本地用户的应用程序目录(或 /etc/skel /) 或将旧名称移动到不同的新名称可能有效。