mac下面安装过docker,但后来删除过。然后系统又重做过。结果再次安装docker的时候报错,如题(详细 路径不贴了)
找了一下资料,各种各样的都有,最后还是选择了:
XML/HTML代码
- sudo rm -r /var/tmp/com.docker.vmnetd.socket
- sudo rm -r ~/Library/Application\ Scripts/com.docker.helper/
- sudo rm -r ~/Library/Containers/com.docker.*
- sudo rm -r ~/Library/Preferences/com.docker.docker.plist
- sudo rm -r ~/Library/Group\ Containers/group.com.docker/
然后再次运行Docker,一切都解决了
有时候真不知道苹果都在做些什么。。这次safari的更新会导致 form在使用xhr提交的时候,如果表单里有<input type="file" />但没有选择文件,这时候表单就提交失败了,本文的标题就是stackoverflow上面的人提出的问题。
大部分奇技淫巧(或者说奇巧淫技)都是说,如果判断input type=file,如果length==0,即没有选择文件,就先将它disable掉,然后new FormData后,再将它恢复。
原文看这里,提供了两个解决方案,一个是用jquery的,一个是不用的:https://stackoverflow.com/questions/49614091/safari-11-1-ajax-xhr-form-submission-fails-when-inputtype-file-is-empty
用JQuery:
JavaScript代码
- var $form = $('form')
- var $inputs = $('input[type="file"]:not([disabled])', $form)
- $inputs.each(function(_, input) {
- if (input.files.length > 0) return
- $(input).prop('disabled', true)
- })
- var formData = new FormData($form[0])
- $inputs.prop('disabled', false)
不用:
JavaScript代码
- var form = document.querySelector('form')
- var inputs = form.querySelectorAll('input[type="file"]:not([disabled])')
- inputs.forEach(function(input) {
- if (input.files.length > 0) return
- input.setAttribute('disabled', '')
- })
- var formData = new FormData(form)
- inputs.forEach(function(input) {
- input.removeAttribute('disabled')
- })
为什么safari还不更新????
更详细 更多的回复,直接看原文吧
supervisor是一个python写的守护进程程序,如果你不想用xxx.sh & 或者用nohup xxx.sh > xxx & 这样的方式来运行程序,那么用supervisor是最简单的。
在macosx下,安装supervisor实在太简单了(网上的教程都是用pip来安装),对于mac来说,直接brew install supervisor就OK了。
然而装完后,你ps aux|grep supervisor,会发现其实进程不存在。而你用brew services start supervisor,却又提示你服务在运行。我靠这是多么大的一个坑?
其实还算比较简单,直接打开vim ~/Library/LaunchAgents/homebrew.mxcl.supervisor.plist,看看里面的执行文件路径,运行一下就知道了。
果然 就直接报错了!
XML/HTML代码
- /usr/local/opt/supervisor/bin/supervisord -n -c /usr/local/etc/supervisord.ini
- Error: section [inet_http_server] has no port value
- For help, use /usr/local/opt/supervisor/bin/supervisord -h
咦。居然报[inet_http_server] has no port value?怪不得刚才用supervisorctl 的时候报:http://localhost:9001访问被拒绝。于是,修改/usr/local/etc/supervisord.ini,把那个注释掉的9001端口打开,再运行就OK了
cat一下supervisord.ini,会发现最后一行是include /usr/local/etc/supervisor.d/*.ini。这个时候就要注意了。
在其他平台都是加载的.conf,mac上是.ini,所以其他平台的不能直接复制过来就用!当然,这个目录本身也不存在:/usr/local/etc/supervisor.d/,要先mkdir一下。
好了,其他的就不说了。笔记一下,浪费我半小时时间