在Windows中使用Linux子系统WSL2

WSL和WSL2的区别

和WSL相比,WSL更接近于一个独立的Linux系统,可以运行Docker,而且性能更好(以前就是因为WSL运行laravel速度慢放弃了)。但是WSL2读写Windows挂载盘的速度比WSL更慢,所以不能把代码放在Windows系统下,然后在WSL2中运行。不过微软给了解决方案,就是使用vscode的Remote-WSL扩展,可以在vscode中直接编辑WSL2环境下的代码。

还有一点是每次重启电脑,或者重启WSL2,WSL2的本地IP都会变,这就导致每次重启hosts、SFTP、MySQL的IP都要修改,一个变通的方法是,既然固定不了wsl2的ip地址,那么就在启动wsl2后主动给它设置一个ip地址。或者编辑win10的hosts文件自定义个域名(如 wsl.test),在Navicat、FTP客户端使用wsl.test作为URL地址,然后每次重启后更新hosts中的域名ip。(注:win10浏览器中也可以直接使用localhost访问wsl的网站,但是不能用来连接FTP)

Read More

flock文件锁解决crontab脚本重复执行问题

背景

  • 在Linux系统使用crontab配置一个定时任务后,出现一种情况,如果我设置的crontab任务时间是每隔1分钟执行一次任务脚本,但是这个脚本执行时间超过了1分钟,比如2分钟,这时系统会再执行任务。导致两个相同的任务在执行。这种情况下可能会出现一些并发问题,严重时会导致出现脏数据/性能瓶颈的恶性循环。

    Read More

macOS Mojave 10.14.6 App Store无法下载和更新应用的解决办法

MacBookPro 还停留在macOS Mojave 10.14.6版本。上周更新2020-007安全更新后,出现在App Store中无法下载和更新应用的情况。主要表示就是:点击安装或者更新时,一直转圈,没有任何其他反应。期间尝试了各种办法,重登录App Store、重启macOS都没作用。

原本打算升级至macOS Big Sur 11.2.1看看能否解决这个问题,不过想到之前都是用中文搜索的解决办法,所以打算再试试用英文从谷歌中看看能否找到解决办法。事实证明这个是有效的,确实找到了解决办法。这次也记录一下。

Read More

使用venv创建python3虚拟环境

python3虚拟环境

首先强烈推荐大家使用python3提供的虚拟环境进行依赖管理,这样的话,每个项目都有自己独立的依赖环境。避免了不同项目使用同一个依赖的不同版本而导致的冲突。

不使用虚拟环境

如果不使用虚拟环境,那么所有项目依赖的包都会存放在一起,这也是以前包的管理方式,好处是用到相同的包不需要重复下载,然而更大的坑是如果以后其他项目用到了同样包的不同版本,就很难搞了;
比如在开发A项目时使用了最新的1.1版本的flask框架,开发完毕并上线正常运行。

Read More