PM2启动服务提示:Error: ENOENT: no such file or directory, uv_cwd 解决办法

 Nodejs, pm2  PM2启动服务提示:Error: ENOENT: no such file or directory, uv_cwd 解决办法已关闭评论
3月 232020
 

PM2中重启服务时,出现下面提示:

PM2: path.js:422
PM2: var path = (i >= 0) ? arguments[i] : process.cwd();
PM2: ^
PM2:
PM2: Error: ENOENT: no such file or directory, uv_cwd
PM2: at Error (native)
PM2: at Object.posix.resolve (path.js:422:50)
PM2: at Function.Module._resolveLookupPaths (module.js:248:17)
PM2: at Function.Module._resolveFilename (module.js:326:31)
PM2: at Function.Module._load (module.js:286:25)
PM2: at Module.require (module.js:365:17)
PM2: at require (module.js:384:17)
PM2: at Object.<anonymous> (/usr/local/bin/node_modules/pm2/lib/ProcessContainer.js:12:15)
PM2: at Module._compile (module.js:434:26)
PM2: at Object.Module._extensions..js (module.js:452:10)

 

出现这种情况原因很可能是你不经意间修改了当时启动服务时的目录,比如修改了目录名,移动了目录等, 可以通过下面的方法核实下:

原因:

  1. 通过pm2 list  中找到不能重启的服务的进程号pid
  2. 通过  ls -l /proc/pid(上面1找到的pid)/cwd, 检查下这个目录是不是被删除了?

 

最终解决方案:

  1. ps ax | grep PM2
  2. 找到pm2进程
  3.  kill pid(进程号)
  4.  pm2 list(或是其他的pm2 命令对pm2 进行重启)

 

 

 

 

 

cocoaPods 执行pod install 出现 “target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in” 问题解决

 cocoaPod  cocoaPods 执行pod install 出现 “target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in” 问题解决已关闭评论
3月 232020
 

pod install时出现类似下面的提示:

[!] The `xxxxx [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-ChatExample/Pods-xxxxx.debug.xcconfig’. This can lead to problems with the CocoaPods installation

    – Use the `$(inherited)` flag, or

    – Remove the build settings from the target.

产生此警告的原因是项目 Target 中的一些设置,CocoaPods 也做了默认的设置,如果两个设置结果不一致,可能会造成问题。 其实这段文字已经告诉了修改方法,但是这个修改的位置具体在哪里呢?

 

打开项目 Target – Build Settings– 查找search “ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES” –  修改值为replace value to :  $(inherited)

 

DONE!!!

mvn打包时出现“Could not transfer artifact xxx from/to central (http://repo1.maven.org/maven2/): Failed to transfer file … HTTPS Required. Return code is: 501 ” 解决办法

 MAVEN  mvn打包时出现“Could not transfer artifact xxx from/to central (http://repo1.maven.org/maven2/): Failed to transfer file … HTTPS Required. Return code is: 501 ” 解决办法已关闭评论
3月 092020
 

命令行mvn打包dubbo-admin时出现下面提示:

[INFO] Scanning for projects…

Downloading: http://repo1.maven.org/mavenDownloading: http://repo1.maven.org/mavenDownloading: http://repo1.maven.org/mavenDownloading: http://repo1.maven.org/mavenDownloading: http://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.1.4.RELEASE/spring-boot-starter-parent-2.1.4.RELEASE.pom

[ERROR] The build could not read 1 project -> [Help 1]

[ERROR]   

[ERROR]   The project org.apache:dubbo-admin:0.1 (/Users/jqzhu/Documents/codes/dubbo-admin/pom.xml) has 1 error

[ERROR]     Non-resolvable import POM: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.1.4.RELEASE from/to central (http://repo1.maven.org/maven2/): Failed to transfer file: http://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.1.4.RELEASE/spring-boot-starter-parent-2.1.4.RELEASE.pom. Return code is: 501 , ReasonPhrase:HTTPS Required. @ line 90, column 16 -> [Help 2]

[ERROR]

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

看来需要使用https代替http。

 

原因:

Effective January 15, 2020, The Central Repository no longer supports insecure communication over plain HTTP and requires that all requests to the repository are encrypted over HTTPS.

解决办法:

Replace http://repo1.maven.org/maven2/ with https://repo1.maven.org/maven2/

Replace http://repo.maven.apache.org/maven2/ with https://repo.maven.apache.org/maven2/

If for any reason your environment cannot support HTTPS, you have the option of using :  http://insecure.repo1.maven.org/maven2/

macOS Catalina 10.15.x 系统根目录只读问题解决方法

 mac, macpro  macOS Catalina 10.15.x 系统根目录只读问题解决方法已关闭评论
1月 202020
 

macOS Catalina苹果新系统升级了根目录的文件权限,变成只读了,这么做对开发者来说简直就是灾难,好多原来的项目都不能运行了。(我原来用来破解intellidea/pycharm/webstorm的jetbrains-agent.jar 文件放在根目录/data/下,点击intellidea/pycharm/webstorm都无法启动,原来以为是jdk的问题,后来发现就是升级了Catalina新系统后,新系统居然删除了我的/data目录😱😱😱😱😱)

 

解决根目录只读的办法如下:

1. 关掉SIP(系统安全保护)
2. 重新挂载根目录
3. 重新启动项目

具体操作:
一、关掉SIP需要重新启动按住 Command + R 进入 macOS 恢复系统,在实用工具里面点击终端,加上下面这一句代码按下会车,看见successfully…之后重新启动

csrutil disable

二、重新挂载根目录需要在终端输入下面这句代码
sudo mount -uw /

三、最后就可以在根目录创建文件夹了并赋权 sudo mkdir /xxx,sudo chmod 777 /xxx

原来有启动Finder的,最好重启Finder再新建文件夹,让这次允许读写的配置在Finder中生效
killall Finder

macos 10.15.x catalina could not be verified/ xcode 11 An unknown error occurred. See the install log for more details.

 mac, macpro, xcode, 开发  macos 10.15.x catalina could not be verified/ xcode 11 An unknown error occurred. See the install log for more details.已关闭评论
1月 202020
 

2012 macpro  升级 macos 到 10.15.2  catalina  并 安装 新xcode时碰到下列问题,供其他碰到的同学参考。

  • 问题1.  “macOS Catalina” could not be verified, 在”系统偏好设置 ” -> “软件更新”下下载完catalina更新包后点安装,提示  “macOS Catalina” could not be verified.
    解决办法:打开“ 系统偏好设置”->“日期与时间”->去掉打勾”自动设置日期与时间”, 重启机器,并再次软件更新并安装。

Go to settings then date&time. Click and then unclick “set date and time automatically”. Save the changes by clicking the lock.

Then restart the computer and proceed to download the update once again through settings and software update. It resolved the issue of the update not being verified.

 

  • 问题2. macos catalina安装完,打开xcode时,提示“An unknown error occurred. See the install log for more details.”

解决方法:

  • 这个问题再次在Xcode 11.1出现,是有个证书在2019年的10月份某天过期引起的。
  • 你可以通过暂时把系统日期修改到过期的日期之前来解决。
  • 在Xcode 11这个版本下,设置系统日期为2019年10月3日,然后运行Xcode,再安装组件,(就可以安装成功了),完成之后再把系统日期改回正常状态。
  • This problem has once again appeared in Xcode 11.1 and is caused by an invalid certificate that expired some day in October 2019.
  • You can work around the problem by temporarily changing the system date to before the certificate expiration date.
  • In the case of Xcode 11, set the system date to Oct 3, 2019, run Xcode, then change the date back after the components have installed.

苹果公司就这么把版本放出来也是醉了!

 

 

Telegram连接MTProxy时一直connecting问题

 linux  Telegram连接MTProxy时一直connecting问题已关闭评论
12月 272019
 

我们一般使用Telegram的时候,都需要先爬Qiang,这样还是比较麻烦的,而在Telegram最新版本中内置了MTProxy代理,占用小,耗电量也小,只需要我们简单设置下,就可以让Telegram和本地应用一样,即开即用,而不需要额外的爬Qiang了。

什么是Telegram MTProxy

Telegram MTProxy是Telegram官方出的一个轻量级的代理工具,可以直接配置在Telegram客户端中,不需要开启其他代理就可以直连Telegram。官方地址:Telegram MTProxy

Telegram MTProxy安装

MTProxy具体搭建过程见:https://github.com/TelegramMessenger/MTProxy

如果觉得麻烦也可以使用一键安装方式:https://github.com/FunctionClub/MTProxy-Bash

 

MTProxy 一直Connecting问题排查

情况说明:

  • Google Cloud Platform (GCP) 安装了MTProxy并正常启动(<secret>、proxy-secret、proxy-multi.conf为上面安装步骤中产生的对应文件或字符)。
./mtproto-proxy -u nobody -p 8888 -H 8443 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 1
  • gcp上打开了8443入口的访问

 

但启动telegram客户端使用mtproxy代理时输入ip、host和secret后,始终在connecting状态,在gcp上可以看到对应端口的连接都有,但就是连接不上。

  1. 网上一种说法是:因为gcp时间与运行telegram客户端机器时间不同步,可在gcp上安装个ntp服务同步时间解决,但不适用与我这边的情况。
  2. 我这里通过下面步骤解决:使用阿里云服务器或者AWS服务器或GCP搭建Telegram MTProxy时,发现这个MTProxy绑定的是内网IP,解决方案也很简单,使用NAT模式就行,指定内网IP和外网IP, 启动命令行里需要加入  –nat-info <intranet ip>:<public ip>, 上面的启动命令变为:

./mtproto-proxy -u nobody -p 8888 -H 8443 -S <secret> –nat-info <intranet ip内网ip>:<public ip外网ip> –aes-pwd proxy-secret proxy-multi.conf -M 1

supervisord管理python进程时print(stdout)日志输出不及时,甚至有缺失问题解决

 python, supervisord  supervisord管理python进程时print(stdout)日志输出不及时,甚至有缺失问题解决已关闭评论
12月 192019
 

使用supervisord管理python进程,代码中print()打印的日志在使用tail -f查看时输出总是不及时,甚至有缺失问题,网络上有下面的几种方式解决:

If you are also using Supervisor to monitor and heal your long running Python projects and observed that output of your program is not being logged to stdout_logfile, it is because Python print statement does not automatically flush output to STDOUT.

One solution is using sys.stdout.flush() frequently to flush the output or if you are using Python 3.3, print(msg, flush=True) is another solution. However, a better solution is to run python with -u parameter (unbuffered mode).

以上总结方法:

  1. 频繁使用sys.stdout.flush()
  2. python3.3以后版本,print使用print(msg, flush=True)
  3. supervisord配置文件里command命令行添加-u参数(这个是最推荐的方法)

举例:

[program:analysis]
command = python -u AnalysisTest.py -port=70%(process_num)02d

S3fs在Amazon EC2 Linux实例上挂载S3存储桶后,使用ls出现“cannot open directory alert/: Operation not permitted”解决办法

 aws  S3fs在Amazon EC2 Linux实例上挂载S3存储桶后,使用ls出现“cannot open directory alert/: Operation not permitted”解决办法已关闭评论
12月 182019
 

利用S3fs在Amazon EC2 Linux实例上挂载S3存储桶请见下面文章
https://aws.amazon.com/cn/blogs/china/s3fs-amazon-ec2-linux/

 

在挂载了s3存储桶后,使用ls命令列出存储桶目录时,出现“cannot open directory alert/: Operation not permitted”,可以使用下面的方式解决:

在进行挂载时,添加当前用户的uid,gid及umask参数(关于当前用户的uid及gid查看可以使用id命令):
-o uid=1000 -o gid=1000 -o umask=0077

xcode下已经使用 “Automatically manage signing”,还提示“is automatically signed, but provisioning profile 1fe1af09-c71e-4300-94d8-76d14cec2eb4 has been manually specified. Set the provisioning profile value to “Automatic” in the build settings editor, or switch to manual signing in the Signing & Capabilities editor.”解决方案

 开发  xcode下已经使用 “Automatically manage signing”,还提示“is automatically signed, but provisioning profile 1fe1af09-c71e-4300-94d8-76d14cec2eb4 has been manually specified. Set the provisioning profile value to “Automatic” in the build settings editor, or switch to manual signing in the Signing & Capabilities editor.”解决方案已关闭评论
12月 092019
 

xcode项目签名已经使用 “Automatically manage signing”,但还是提示如下:

XXXXXX is automatically signed, but provisioning profile 1fe1af09-c71e-4300-94d8-76d14cec2eb4 has been manually specified. Set the provisioning profile value to “Automatic” in the build settings editor, or switch to manual signing in the Signing & Capabilities editor.

记录下自己错误提示中黑体字位置部分的文字:“1fe1af09-c71e-4300-94d8-76d14cec2eb4”

试下下面的方法:

  1.  右键点击 项目文件  xxxx.xcodeproj –> 显示包内容(Show Package Contents)–> 打开并编辑 project.pbxproj
  2. 在project.pbxproj 搜索“1fe1af09-c71e-4300-94d8-76d14cec2eb4”,找到对应的行,删除
  3. 再次进入xcode,使用“Automatically manage signing”,Done!

pm2修改配置文件后,restart未重新加载问题解决

 pm2  pm2修改配置文件后,restart未重新加载问题解决已关闭评论
11月 092019
 

修改了pm2的配置文件,发现使用下面命令都无效,配置就是没更新:

无效命令(Invalid):
pm2 reload config.json
网上也有说用下面的命令,我这边也无效
pm2 startOrReload config.js –update-env

后来只能使用删除项目后再启动方式OK:
以下有效(valid):
pm2 delete all
pm2 restart config.json