跳到主要内容

周三

· 阅读需 5 分钟
Quany
软件工程师

任务集

  • 结营伙伴崩溃问题;
  • 极光推送安全审核问题;
  • 服务器瘦身
  • 三合一工作方案;
  • Next.js 的 CRUD,运营后台方案;

服务器瘦身

回收服务器

  • 18.10.80.123
  • 18.10.80.124

迁移目标服务器

  • 18.10.80.117
  • 18.10.80.118

域名解析

  • xlm-web.xlsuixing.com

执行策略

  • 优先迁移静态资源
  • 再搞域名解析

您遇到的错误信息表明,Watchman 服务无法与其套接字进行通信,这通常是由于权限问题或 Watchman 服务未正确运行造成的。以下是一些故障排除和解决此问题的步骤:

故障排除步骤

  1. 检查 Watchman 状态

    • 确保 Watchman 正在运行。您可以通过执行以下命令检查其状态:
      watchman version
  2. 重启 Watchman

    • 如果 Watchman 正在运行但仍然遇到问题,请使用以下命令重启它:
      watchman shutdown-server
      watchman watch-del-all
  3. 检查权限

    • 确保运行命令的用户具有相关目录的必要权限。如果您使用 Homebrew 安装了 Watchman,可能需要调整相关目录的权限:
      sudo chown -R $(whoami) /usr/local/var/run/watchman
      chmod 700 /usr/local/var/run/watchman
  4. 完全磁盘访问

    • 在 macOS 上,确保您的终端应用程序和 Watchman 都具有完全磁盘访问权限:
      • 前往 系统偏好设置 > 安全性与隐私 > 隐私 标签。
      • 滚动到 完全磁盘访问,确保终端和 Watchman 都被勾选。
  5. 删除状态文件

    • 如果问题仍然存在,请尝试删除 Watchman 状态目录中的现有状态文件(例如 /usr/local/var/run/watchman/<用户名>-state/):
      rm -rf /usr/local/var/run/watchman/<用户名>-state/*
  6. 增加 Inotify 限制(Linux)

    • 如果您在 Linux 上遇到 Inotify 监视限制,可以通过修改 fs.inotify.max_user_watches 设置来增加限制:
      echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
  7. 重新安装 Watchman

    • 如果上述解决方案都无效,可以考虑使用 Homebrew 重新安装 Watchman:
      brew uninstall watchman
      brew install watchman
  8. 检查日志

    • 要获取更详细的错误信息,可以以前台模式运行 Watchman,以直接查看日志:
      watchman --foreground --logfile=/Volumes/Samsung/sxf/expands/icoding/log.txt

要在后台运行 Watchman,您可以按照以下步骤进行配置和操作:

Watchman 后台运行方法

  1. 安装 Watchman

    • 如果尚未安装 Watchman,可以使用 Homebrew 在 macOS 上安装:
      brew install watchman
  2. 启动 Watchman 守护进程

    • 使用以下命令启动 Watchman 的守护进程:
      watchman -d
    • 这将使 Watchman 在后台运行,并监控文件变化。
  3. 使用 JSON 配置文件

    • 您可以通过 JSON 格式的配置文件来设置 Watchman 的监控规则。创建一个 JSON 文件并在其中定义要监控的目录和文件变更操作。
  4. 运行任务

    • 要在后台运行特定的任务,可以使用以下命令:
      watchman run -n <任务名> <命令>
    • 例如,您可以运行一个脚本:
      watchman run -n mytask sh /path/to/script.sh
  5. 查看任务状态

    • 使用以下命令查看当前正在运行的任务:
      watchman list
  6. 重启或停止 Watchman

    • 如果需要重启或停止 Watchman,可以使用以下命令:
      watchman shutdown-server

其他后台运行方法

  • 使用 & 符号

    • 在终端中运行命令时,可以在命令末尾添加 & 符号将其放入后台。例如:
      python script.py &
  • 使用 nohup 命令

    • 如果希望程序在关闭终端后继续运行,可以使用 nohup 命令:
      nohup python script.py >> output.log 2>&1 &
  • 使用 tmux 或 screen

    • tmuxscreen 是常用的终端复用器,可以在其中运行程序而不受终端关闭的影响。
      tmux new-session -s mysession

通过以上方法,您可以有效地在后台运行 Watchman 和其他程序,以便于管理和监控文件变化。

微信公众号

微信公众号