当前位置: 首页 > news >正文

手机网站 qq代码免费app制作工具

手机网站 qq代码,免费app制作工具,怎么知道网站被百度k了,黑科技问题描述:ubuntu桌面版在做服务器情况不带显示器的情况下与向日葵等远程办公软件不兼容,引入虚拟显示器方式,但是后续如果要使用物理显示器的话又需要将配置的虚拟显示器文件conf删除(否则物理显示器黑屏或卡死)&#…
问题描述:ubuntu桌面版在做服务器情况不带显示器的情况下与向日葵等远程办公软件不兼容,引入虚拟显示器方式,但是后续如果要使用物理显示器的话又需要将配置的虚拟显示器文件conf删除(否则物理显示器黑屏或卡死),操作繁琐。本文旨在做一套自动检测,切换配置的脚本教程,解决部分特定场景的需要。

脚本设置

1. 修改脚本(服务将以 root 权限运行)

#!/bin/bash# Ubuntu 虚拟显示器自动控制脚本
# 功能:自动检测显示器状态并相应启用/禁用虚拟显示器CONFIG_PATH="/usr/share/X11/xorg.conf.d/xorg.conf"
CONFIG_CONTENT='
Section "Monitor"Identifier "Monitor0"HorizSync 28.0-80.0VertRefresh 48.0-75.0Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
EndSectionSection "Device"Identifier "Card0"Driver "dummy"VideoRam 256000
EndSectionSection "Screen"DefaultDepth 24Identifier "Screen0"Device "Card0"Monitor "Monitor0"SubSection "Display"Depth 24Modes "1920x1080_60.00"EndSubSection
EndSection
'# 检测是否有真实显示器连接
has_real_display() {# 尝试使用xrandr检测连接的显示器if command -v xrandr >/dev/null 2>&1; then# 检查是否有已连接的显示器(排除虚拟显示器)if xrandr --listmonitors 2>/dev/null | grep -v "dummy" | grep -q " connected"; thenreturn 0 # 有真实显示器fifi# 备用检测方法:检查DRM设备if [ -d "/sys/class/drm" ]; thenfor card in /sys/class/drm/card*-*; doif [ -e "$card/status" ] && [ "$(cat "$card/status" 2>/dev/null)" = "connected" ]; thenif ! echo "$card" | grep -q "dummy"; thenreturn 0 # 有真实显示器fifidonefireturn 1 # 没有真实显示器
}# 创建虚拟显示器配置
create_virtual_display() {echo "正在创建虚拟显示器配置..."mkdir -p /usr/share/X11/xorg.conf.d/echo "$CONFIG_CONTENT" | tee "$CONFIG_PATH" > /dev/nullif [ -f "$CONFIG_PATH" ]; thenecho "✓ 配置文件已创建: $CONFIG_PATH"restart_display_managerreturn 0elseecho "✗ 配置文件创建失败!"return 1fi
}# 删除虚拟显示器配置
remove_virtual_display() {echo "正在禁用虚拟显示器配置..."rm -f "$CONFIG_PATH"if [ ! -f "$CONFIG_PATH" ]; thenecho "✓ 配置文件已禁用"restart_display_managerreturn 0elseecho "✗ 配置文件禁用失败!"return 1fi
}# 重启显示管理器
restart_display_manager() {echo "⏳ 正在重启显示服务..."# 自动检测当前显示管理器if systemctl is-active --quiet gdm3; thensystemctl restart gdm3echo "✓ 已重启 gdm3 服务"elif systemctl is-active --quiet lightdm; thensystemctl restart lightdmecho "✓ 已重启 lightdm 服务"elsesystemctl restart display-managerecho "✓ 已重启 display-manager 服务"fi
}# 自动检测并调整显示器配置
auto_adjust_display() {if has_real_display; then# 有真实显示器,应禁用虚拟显示器if [ -f "$CONFIG_PATH" ]; thenecho "检测到真实显示器,禁用虚拟显示器..."remove_virtual_displayelseecho "检测到真实显示器,无需调整"fielse# 无真实显示器,应启用虚拟显示器if [ ! -f "$CONFIG_PATH" ]; thenecho "未检测到真实显示器,启用虚拟显示器..."create_virtual_displayelseecho "未检测到真实显示器,无需调整"fifi
}# 主函数 - 直接启动自动监听模式
main() {echo "启动 Ubuntu 虚拟显示器自动控制脚本"# 初始检测一次auto_adjust_display# 然后每10秒检测一次while true; dosleep 10auto_adjust_displaydone
}# 运行主函数
main

2. 保存脚本并设置权限

sudo nano /usr/local/bin/virtual-display-manager.sh
# 粘贴上面的脚本内容
sudo chmod +x /usr/local/bin/virtual-display-manager.sh

系统服务配置

3. 创建系统服务文件

sudo nano /etc/systemd/system/virtual-display-manager.service

添加以下内容:

[Unit]
Description=Virtual Display Manager
After=multi-user.target[Service]
Type=simple
ExecStart=/usr/local/bin/virtual-display-manager.sh
Restart=always
RestartSec=10
User=root[Install]
WantedBy=multi-user.target

4. 启用并启动服务

sudo systemctl daemon-reload
sudo systemctl enable virtual-display-manager.service
sudo systemctl start virtual-display-manager.service

或者重启服务:

sudo systemctl restart virtual-display-manager.service

5. 检查服务状态

sudo systemctl status virtual-display-manager.service

服务管理命令

启动服务

sudo systemctl start virtual-display-manager.service

停止服务

sudo systemctl stop virtual-display-manager.service

重启服务

sudo systemctl restart virtual-display-manager.service

禁用开机自启动

sudo systemctl disable virtual-display-manager.service

查看服务日志

sudo journalctl -u virtual-display-manager.service -f

功能说明

这样设置后,脚本将在系统启动时自动运行,并在后台持续监控显示器状态,根据需要启用或禁用虚拟显示器。服务会在意外停止时自动重启(每10秒检查一次),确保始终运行。

注意:切换虚拟显示器配置时会重启显示管理器服务,这将终止当前图形会话和所有运行的图形应用程序。以下是详细说明:

类别

会被终止 (❌)

不会终止 (✅)

应用程序

所有带有图形界面的程序(浏览器、IDE、办公软件)

无图形界面的命令行工具(如 curlwget

终端/Shell

所有图形终端模拟器(GNOME Terminal, Konsole)

文本控制台(tty1-6)中的 Shell

进程类型

在图形终端中运行的前台进程

使用 tmux/screen/nohup 运行的进程

系统服务

所有由 systemd 管理的服务(nginx, docker, sshd)

用户界面

整个桌面环境(GNOME, KDE Plasma, XFCE)

因此,在执行此脚本之前(插入或者拔出物理显示器时),务必要保存所有图形应用程序中的重要工作。 对于需要长时间运行的任务,强烈建议在 tmux 或 screen 会话中启动它们,这样即使图形界面重启,任务也会在后台继续运行,之后可以重新连接恢复。

http://www.dtcms.com/a/474496.html

相关文章:

  • MyBatis-Plus 全方位使用指南:从基础 CRUD 到复杂查询
  • avalonia的hello示例及mvvm实现
  • 天津网站建设优化如何建网站费用多少
  • 网站建设泉州效率网络企业网站建设基本原则
  • 41.Shell Case选择 While循环
  • 基于单片机的智能水箱温度液位控制系统设计
  • 数字化转型—AI+制造业的十大应用场景
  • Java-集合练习
  • 新民正规网站建设价格咨询广州app开发价格表
  • 适合用struts2做的网站钦州教育论坛网站建设
  • 关于节约化建设网站的表态发言企业推广方式力荐隐迅推
  • 北京备案网站莱芜58同城网
  • JavaSE面向对象(中)
  • 保健品网站源代码代理平台什么意思
  • 做网站签了合同后不想做了办公室装修公司哪里好
  • 网站建设和网络优化网站建设对网络营销有哪些影响
  • wordpress导入网站文章西安seo专员
  • 大学城网站开发公司深圳企业网页设计公司
  • commons-configuration2(配置管理库)
  • 处理Git错误:“invalid object [hash]”和“unable to read tree [hash]”
  • MySQL数据库 常用命令整理
  • 前端开发 - 实时智能回复
  • 对电子商务网站建设与维护的总结wordpress多选展示表单
  • 从零起步学习MySQL || 第二章:DDL语句定义及常见用法示例
  • Oracle REST Data Services是什么?
  • [吾爱大神原创工具] windows 多窗口同步软件(键+鼠) 20251011 更新
  • TDengine 数学函数 COS 用户手册
  • qfd 网站开发wordpress 上传主题 ftp
  • 算法与数据结构——排序算法大全
  • 吕口-反射薄利多销AI入口算法系统方案