You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyCharm中自动为Dreamhost Flask应用生成tmp/restart.txt?

嘿,我刚好折腾过类似的场景,给你几个在PyCharm里直接实现自动刷新Passenger缓存的实用办法,亲测在Dreamhost上能用:

方法1:利用PyCharm部署后自动执行SSH命令(最直接)

这应该是最贴合你需求的方案,每次PyCharm部署代码(手动或自动)后,自动帮你执行touch tmp/restart.txt:

  • 打开PyCharm的部署配置:File → Settings → Build, Execution, Deployment → Deployment
  • 选中你已经配置好的Dreamhost服务器,切换到Tools标签页
  • 在「Deployment」下方的「After deployment」区域,点击+号添加一个操作
  • 选择「Run SSH external tool」,然后配置你的Dreamhost SSH连接(填服务器地址、用户名、密码/密钥,和你平时SSH登录的信息一致)
  • 在命令输入框里填:touch /绝对路径/到你的Flask应用目录/tmp/restart.txt,一定要用绝对路径,避免路径错误
  • 保存配置后,下次你手动触发部署(或者开启自动部署时),PyCharm会在文件上传完成后自动执行这个命令,帮你刷新Passenger缓存
方法2:结合Git钩子实现代码同步+自动刷新

就是你看到的用Git仓库的方案(其实不用GitHub,直接服务器端Git仓库就行),适合习惯用Git管理代码的场景:

  1. 在Dreamhost服务器上创建裸Git仓库:
    登录SSH终端,执行:
    mkdir ~/myapp-repo.git && cd ~/myapp-repo.git && git init --bare
    
  2. 添加post-receive钩子:
    进入裸仓库的hooks目录:cd ~/myapp-repo.git/hooks
    创建post-receive文件,写入以下内容(替换成你的应用绝对路径):
    #!/bin/bash
    # 把代码同步到应用目录
    GIT_WORK_TREE=/绝对路径/到你的Flask应用目录 git checkout -f
    # 刷新Passenger缓存
    touch /绝对路径/到你的Flask应用目录/tmp/restart.txt
    
    给钩子文件加执行权限:chmod +x post-receive
  3. 在PyCharm里配置远程Git仓库:
    在PyCharm的Git设置里,把刚才创建的服务器裸仓库添加为远程仓库(地址类似ssh://你的用户名@你的Dreamhost域名/~/myapp-repo.git)
    之后每次在PyCharm里push代码到这个远程仓库,服务器端的钩子就会自动把代码同步到应用目录,同时执行touch命令刷新缓存
方法3:配置远程工具手动触发(适合偶尔手动刷新)

如果你不想每次部署都自动刷新,只想在需要的时候手动执行,可配置PyCharm的远程外部工具:

  • 打开Settings → Tools → Remote Tools
  • 点击+号新建一个远程工具,配置你的Dreamhost SSH连接
  • 在「Command」里填:touch /绝对路径/到你的Flask应用目录/tmp/restart.txt
  • 保存后,你可以通过顶部菜单Tools → Remote Tools找到这个工具,点击就能直接执行,不用再开SSH终端

小提醒

  • 确保你的SSH用户对应用目录下的tmp文件夹有读写权限
  • 所有路径务必用绝对路径,不然很容易因为工作目录不同导致命令执行失败
  • 如果开启自动部署,记得在PyCharm的部署配置里勾选「Upload changed files automatically to the default server」

内容的提问来源于stack exchange,提问作者rsgny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:19:28