Hexo错误:spawn failed的解决方法
昨天部署的时候突然spawn failed,怎么部署都部署不上。后来折腾了好一会终于解决了这个报错问题。今天又发现群友有这个问题,所以写个文章来复盘一下。
截图来自群员
重启电脑
有的时候可能是因为网络波动产生的错误,请首先尝试。
服务器相关
如果你的Hexo是部署在服务器时,请注意以下方法
首先检查服务器是否能被ssh跑通,SERVER填写自己的云主机ip,以git用户为例:
ssh -v git@SERVER
服务器部署
请一定要检查公钥pub文件是否输入正确
切换至指定用户,以git用户为例:
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
将pub文件内容在i编辑模式下粘贴进去,请特别检查开头和结尾。
按esc
后输入:wq
退出
服务器文件权限问题
如果你部署的账户没有文件夹权限,则可能会出现权限问题,以git用户为例
chown -R git:git /var/repo/
chown -R git:git /var/hexo/
使用Github部署
如果使用GitHub,可以尝试是否能跑通GitHub
ssh -T git@github.com
修改配置文件
打开_config.yml配置文件
修改以下内容
deploy:
type: git
repo: https://github.com/yourname/yourname.github.io.git
branch: master
其中的repo修改为
repo: git@github.com:yourname/yourname.github.io.git
本地文件产生的问题
如果你是本地文件产生错误,可以考虑以下方式。
重置git的deploy文件夹
huahua提供的方法,删除博客文件夹中的.deploy_git
文件夹,然后在终端cd这个文件夹后输入git config --global core.autocrlf false
多系统混合编写导致的问题
silver提供的方法,cd进.deploy_git
文件夹,输入git config –global core.autocrlf false。
删除lock文件
小青提供的方法:找到.deploy_git
文件夹中的index.lock
文件,删除就好了。
强制推送(不推荐)
cd进.deploy_git
文件夹,然后使用git push -f
强制推送
回滚版本
Perry提供的方法
打开.deploy_git\.git\logs
路径下的HEAD
查看最近一次正确的那次的commitId
然后用git reset --hard commitId
回滚
大功告成!
然后可以直接hexo clean && hexo g && hexo d
,发现就可以部署上了。