2020年9月

echo 是常用的终端命令,常用来输出字符串。配合命令的 option 选项可以实现多种输出方式。

语法结构:

echo [option(s)] [string(s)]

常规使用

输出字符串:

$ echo i have a dream
i have a dream

- 阅读剩余部分 -

最近在学习 powershell 脚本中发现如果当前目录不在 ps1 脚本所在目录的话脚本不能正常执行,研究了下如何解决。

PS C:\Users\Marco Nie> "C:\Users\Marco Nie\Application\aria2\download-complete.ps1"
C:\Users\Marco Nie\Application\aria2\download-complete.ps1

如以上,我想执行脚本,但是只是返回了路径。

解决方法是在脚本路径前加上程序调用符 & ,表示后面的是可执行文件。

 &"C:\Users\Marco Nie\Application\aria2\download-complete.ps1"

以上方式就可以正常执行脚本了。

还有就是脚本路径上如果有空格的话,需要使用引号将路径包围起来,这样就可以了。

参考链接:
http://www.splaybow.com/post/powershell-run-command-with-space.html

在使用 aira2 的 rpc 下载功能时,默认没有下载完成提示,所以需要手动打开 webui 进行查看。

关于 aria2 的使用参考我的教程:https://blog.niekun.net/archives/1199.html

注意到配置文件里有一个:on-download-complete 选项,可以在下载完成后执行脚本,具体解释参考官方网页

可以利用这一点,编写一个脚本来触发系统通知,这样就可以知道文件下载完成了。

- 阅读剩余部分 -

今天在使用 journalctl 查看 nginx 日志时看到在每次启动服务后会出现一条错误信息:

$ journalctl -u nginx
...
nginx.service: Failed to parse PID from file /opt/nginx/logs/nginx.pid: Invalid argument
...

查找了下原因,可能是 nginx 在启动时创建 nginx.pid 文件前 systemd 就在请求这个文件,所以出错了。

解决办法就是题前手动创建 systemd 需要的文件:

mkdir /etc/systemd/system/nginx.service.d
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf
systemctl daemon-reload

以上处理就可以解决问题。

参考链接:
https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864