腾讯云主机移除监控程序

刚买的服务器,看看,这么多的 agent。

image-20241013上午40101283

cron

crontab -e

包含了这样的任务,直接删掉。

*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'

还有这个定时任务:

rm -f /etc/cron.d/sgagenttask

/usr/local/qcloud

自带了这些agent的卸载脚本:

/usr/local/qcloud/stargate/admin/uninstall.sh
/usr/local/qcloud/YunJing/uninst.sh
/usr/local/qcloud/monitor/barad/admin/uninstall.sh

看看还有什么东西:

ps aux | grep agent

还有一个:

/usr/local/qcloud/tat_agent/tat_agent

看了一眼,找不到卸载的脚本。

systemctl stop tat_agent
systemctl disable tat_agent

删除多余文件:

rm -f /etc/systemd/system/tat_agent.service
rm -rf /usr/local/qcloud
rm -rf /usr/local/sa
rm -rf /usr/local/agenttools

macOS 模拟触摸板向下滑动

今天需要在 macOS 上模拟触控板滑动事件,并且希望模拟自然的人类手势,即速度由慢到快。用 Swift 来实现,并控制滑动的时间间隔,目标是每隔 4 到 8 秒执行一次向下滑动的操作,滑动时速度逐步加快。简单记录一下:

import Foundation
import CoreGraphics

func simulateAcceleratingScrollDown() {
    let totalSteps = 25
    let initialScrollAmount: Int32 = -5
    let maxScrollAmount: Int32 = -25
    let initialDelay: TimeInterval = 0.1
    let minDelay: TimeInterval = 0.02
    
    for step in 1...totalSteps {
        let scrollAmount = initialScrollAmount + (Int32(step) * (maxScrollAmount - initialScrollAmount) / Int32(totalSteps))
        let currentDelay = initialDelay - (initialDelay - minDelay) * Double(step) / Double(totalSteps)
        let scrollEvent = CGEvent(scrollWheelEvent2Source: nil, units: .pixel, wheelCount: 1, wheel1: scrollAmount, wheel2: 0, wheel3: 0)
        
        scrollEvent?.post(tap: .cghidEventTap)
        Thread.sleep(forTimeInterval: currentDelay)
    }
}

func randomInterval() -> TimeInterval {
    return TimeInterval(arc4random_uniform(5) + 4)
}

func startRandomScrolling() {
    let interval = randomInterval()
    Timer.scheduledTimer(withTimeInterval: interval, repeats: false) { _ in
        simulateAcceleratingScrollDown()
        startRandomScrolling()
    }
}

RunLoop.current.run()

解释:

  • simulateAcceleratingScrollDown(): 模拟触控板的滑动动作,滚动步数由慢到快,每步滚动的像素量逐渐增加,延时逐渐缩短。
  • randomInterval(): 生成 4 到 8 秒的随机时间间隔。
  • startRandomScrolling(): 定时器每次等待随机时间后调用滑动事件,并继续递归调用。

解决 macOS 上的 mds_store 高 CPU 占用并停用 Spotlight 索引

最近在使用 macOS 时,htop 的时候发现几个核的cpu都是100%满负荷运行,往下再查了一下,发现 mds_store 这个进程占用大量 CPU 资源,系统也非常卡顿(虽然不一定是这个进程造成的)。

mds_store 是 macOS Spotlight 索引服务的一部分,负责管理文件的元数据,让我们可以快速通过 Spotlight 搜索文件、邮件、应用等内容。当系统文件发生变化时(比如文件创建、修改、删除等),mds_store 就会进行重新索引,因此可能会占用大量的 CPU 资源,特别是在以下几种场景下:

  • 文件频繁变动:比如大量文件的操作,像是开发项目、下载大文件等。
  • 外接硬盘或网络驱动器:如果连接了外部存储设备,Spotlight 也会索引这些内容。
  • Spotlight 索引损坏:有时候 Spotlight 的索引会损坏,导致系统反复尝试重新索引。
  • 系统更新后重新索引:每次 macOS 大更新后,Spotlight 需要重新为整个系统创建索引。

mds_store 高 CPU 占用

  1. 重建 Spotlight 索引:有时候 Spotlight 的索引可能会出现问题,最简单的解决办法就是重建索引。打开终端,输入以下命令来删除并重建 Spotlight 的索引:

    sudo mdutil -E /
    
  2. 排除某些文件或文件夹:如果有一些文件夹不需要索引,可以将它们从 Spotlight 中排除掉:

    • 打开 系统偏好设置Spotlight隐私。 - 点击 +,选择那些不想索引的文件夹,比如外接硬盘、开发项目目录等。
  3. 关闭外接驱动器的索引:如果我们使用外接硬盘或网络驱动器,Spotlight 可能也会试图索引它们。关闭某个特定驱动器的索引:

    sudo mdutil -i off /Volumes/ExternalDrive
    

    替换 ExternalDrive 为实际的卷名,这样 Spotlight 就不会再去索引外接硬盘上的文件了。

  4. 检查大型文件或数据库:一些大型文件(如邮件库、照片库等)可能会让 Spotlight 花费大量时间去索引。如果这些数据不需要搜索,可以将它们排除在外。

停用 Spotlight 索引

有些时候我们不需要 Spotlight 的全局搜索功能,也可以停用 Spotlight 索引。方法很简单,可以通过终端来完全关闭 Spotlight:

  1. 完全停用 Spotlight

    sudo mdutil -a -i off
    

    这会关闭所有卷上的 Spotlight 索引。关闭后,系统不会再为文件、邮件等内容建立索引,搜索功能也会被停用。如果之后想再次启用 Spotlight,只需执行以下命令:

    sudo mdutil -a -i on
    
  2. 停用特定卷的索引

    sudo mdutil -i off /Volumes/YourVolumeName
    

    这样 Spotlight 只会关闭指定卷的索引,不影响系统其他部分的搜索功能。

  3. 停用 mds 进程(不建议)

    其实,强行终止 mdsmdworker 进程也是一种方式,但 macOS 会定期重新启动这些进程。所以更推荐使用 mdutil 命令进行停用。如果坚持要这么做,可以运行以下命令:

    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
    

    这个命令会停止 mds 进程,但是我不推荐,因为这可能会影响系统的一些其他功能。

虽然 Spotlight 是 macOS 中非常强大的搜索工具,但有时候它也会给系统带来不小的负担。根据实际需求,适当地调整 Spotlight 的行为,甚至在必要时完全停用它,能够显著改善系统的性能。


mac studio 强制重启

老问题了,我的 mac studio M2 Max按下开机键,正面右下角的白色呼吸灯会弱亮度缓慢闪,但是就是不启动。正常情况下,应该是白色灯常亮状态。

用了如下方法强制重启:

  1. 拔下电源插头
  2. 长按电源按钮10s左右
  3. 插入电源,此时变为黄色呼吸灯闪亮
  4. 长按电源按钮10s左右,此时变为黄色灯常亮
  5. 正常按下电源,此时变为白色灯常亮

在 macOS 上禁用 GoogleUpdater

在运行 ps aux 命令时偶然发现 GoogleUpdater ,我更倾向于手动管理更新。所以决定禁用它,步骤如下:

1. 终端删除更新程序

打开终端,输入以下命令来删除 Google Software Update:

sudo rm -rf /Library/Google/GoogleSoftwareUpdate

再删除自动启动的服务:

sudo rm -rf /Library/LaunchAgents/com.google.keystone.agent.plist
sudo rm -rf /Library/LaunchDaemons/com.google.keystone.daemon.plist

2. 禁用自动更新检查

在终端中设置更新间隔为 0,彻底禁用后台自动更新:

defaults write com.google.Keystone.Agent checkInterval 0

3. 停止活动的定时任务

launchctl 查看并停止 Google 的更新服务:

launchctl list | grep google
sudo launchctl unload -w /Library/LaunchAgents/com.google.keystone.agent.plist
sudo launchctl unload -w /Library/LaunchDaemons/com.google.keystone.daemon.plist

macOS 每秒钟强杀 `idleassetsd` 进程

前文提要:Mac Sonoma 删除不必要的视频壁纸

最近发现 macOS 上的 idleassetsd 进程在后台消耗了大量带宽。这个进程负责下载壁纸,但对于我来说完全没用。

image-20240926下午65031892

在网上也搜到了大量的相关情况:

单纯kill掉还不行;

sudo killall idleassetsd

大概2s左右又会重新拉起来。无奈,写个脚本 kill_idleassetsd.sh 强杀吧。

#!/bin/bash

while true; do
    sudo killall idleassetsd
    sleep 1  # 等待1秒
done

image-20240926下午71219298


macOS 15 界面无响应

昨天刚升级了macOS 15,今天遇到了一个奇怪的问题:macOS 15 突然卡住了,UI 界面无法进行任何操作。

image-20240926下午72332771

鼠标可以动,网易云音乐正常播放,AirPods 下一曲没问题,但鼠标点击无反应,键盘输入也无效。不过,我还能通过 SSH 从其他设备远程登录到这台电脑。觉得问题出在 UI 层面,而非整个系统挂了。

试了一些常见的修复办法,比如通过 SSH 重启 Dock 和 Finder,kill -9,osascript -e 'tell application "System Events" to log out'之类的,都没有效果。

这里记录几个命令

loginwindow

强制登出用户:

sudo killall -HUP loginwindow
  • killall 是一个用于终止或向多个同名进程发送信号的命令。

  • -HUPSIGHUP 信号的缩写,代表“挂起”(Hangup),这个信号最初是在终端断开时发送的。

    对进程而言,HUP 信号通常表示让进程重新加载配置文件,或者在某些情况下,重启进程。

    对于 loginwindow 进程,HUP 信号的效果是强制重启 loginwindow,从而使用户被注销并重启登录界面。

这个命令会重启 loginwindow 进程,相当于强制注销当前用户并重启登录窗口。在执行这个命令后,我的系统立即退出当前用户会话,回到登录界面,再次登录后,系统恢复了正常操作。

另外,也不用过于担心刚才打开的文件没有保存之类的问题。大部分的软件在登陆后都会恢复状态,只有需要保持远程连接之类的app,才可能会被退出。

WindowServer

sudo killall -HUP WindowServer

SystemUIServer

killall SystemUIServer

Finder

killall Finder