新冠体验

很久没有在博客上写文章了,主要原因是,使用电脑相关的事情基本都达到了自己的目标,兴趣转向了计算机科学与技术课程的学习,自然没有多少经验可以分享。

最近众所周知的原因,全国人民都生病了,我也感染了新冠,网络上消息满天飞,真假难辨,想想还是在这里记录一下过程。

在12月21日之前的两三天,就感觉喉咙有痛感,虽然一直都有咽炎,但知道咽炎并不是这种感觉,预感可能中毒了。

21日正常上班,上午就感觉开始寒冷,凭经验判断这应该是发烧了,这种状态一直持续到下午,时不时在身体的不同部位、关节会出现一种针刺、刀割似的疼痛,只是这种疼痛每次持续不是很长,几秒或一两分钟不等,快下班时也感觉非常不好受。回到家已经是6点多钟,听完晚饭后大概是7点以后了,头已经变得昏昏沉沉,感觉都无法很好地坐在椅子上,只好上床睡觉,同时吃了一颗布洛芬胶囊。也不知睡了几个小时,其实是根本没有睡着,只是感觉身体温度越来越高,心率超过了130,知道吃的那颗药根本没有用,暂时也没有别的办法了,再吃了一颗布洛芬胶囊,也许这次药起作用了,之后不久竟然睡着了。

醒来已经是第二天6点多了,已经没有了发高烧的难受感觉,但头痛,非常明显的头痛,到中午以后身体寒冷的感觉再次变得明显,整天刺痛的感觉一直都有,只是程度比前一天轻了不少。早上吃了一颗已经过期一年多的感冒药,全天大量喝水,晚上睡觉前又吃了一颗过期的药,开始吃头孢克洛。

第3天起来没有了明显的头痛,只是嗓子明显痛了起来,全天仍有寒冷感,已经开始了咳嗽,继续吃过期的药,喝大量的水。

第4天起床后头不痛了,没有了寒冷感,喉咙非常痛,咳嗽变得严重起来,痰里面有明显的血迹,刺痛感觉消失了,但好像又有点腰酸了。测了抗原,明显的阳性,继续吃过期的药,喝大量的水,开始喝右美沙芬止咳药。

第5天咳嗽严重,咳嗽太频繁好像让头也痛起来了,痰里面的血迹加重了,胸部有明显的压迫感,不停地刷头条消息,都说“大白肺”,自己也开始疑神疑鬼。晚上去人民医院急诊查了肺和心脏,慢性肺炎。全天只是用了止咳药。

第6天起来感觉身体比较轻松,咳嗽仍然厉害但喉咙不痛,痰里面的血迹也很少了,吃前一天从医院开的三种止咳化痰的药。无所事事,在房间里刷了一天的电视剧“父母爱情”。

第7天上班了,感觉与第六天差不多,仍然是咳嗽,坐在办公桌边,似乎咳嗽没有前一天厉害。中午步行到药店买了一盒阿奇霉素分散片,网络上说可能可以治咳嗽,前几天用头孢没有效果。

吃了三天的阿奇霉素基本没有效果,几天过去吐出的痰又有颜色了,利用周六的时间到药店再买了一盒阿莫西林,吃了两天,又回到了白痰的状态。

今天已经是2023年的1月9日了,仍然是咳嗽,似乎程度有所降低,行动稍微激烈一点也一直是有点气短的状态,昨天看到新闻说,很多的人咳嗽都持续了一个多月,希望后面能快点好起来。

总的说来,对于年龄不是太大的人来说,这个病的严重程度可能与较重的流行感冒差不多吧,甚至没有三年前的一次感冒难受,我这次真正难受就两天,第一天高烧,第二头痛欲裂,其它时间精神状态都比较好,麻烦的问题是咳嗽、气短。

看身边的情况,多数人都病中恢复过来了,大约三周的时间,街道、商场,上班、上学恢复如初,听说医院老年人重症比较多。现在的病毒致病能力确实比较低了,主要影响上呼吸道,但不少人会多少对肺部造成轻微的感染,经过简单的药物治疗都能好转。但也确实有极少数的人,对这个病毒是敏感的,会引起严重的心肌炎症,和原有基础病的严重的并发症。

所以,个人认为,病毒本身危害已经不大了,但感染后可能出现的继发重症疾病需要重视,虽然概率较低,但真的可以致命。

对这个的管控放开是大势所趋,只是太晚了,我们在现代医药科技方面的差距仍然巨大,我们的社会治理说落后也不过分,唯有一心一意谋发展才是正道。互联网基本就是大酱缸,反科学、反智、反常理的东西太多,混淆是非的人太多,需要更多的人接受更好的教育,真正构筑现代人类道德的底线,只有文明的进步才能真正让中华民族重现辉煌。

supervisord管理进程的一个问题

自己开发一个容器,有多个应用在其中,为保证服务可用,用supervisord来做进程管理,部署时碰到一个问题:容器打包好后,导入服务器使用,但docker提示容器意外退出,无法正常运行,查看运行日志,有如下信息。

2022-6-11 06:14:27,564 INFO exited: x11vnc (exit status 127; not expected)
2022-6-11 06:14:28,568 INFO gave up: x11vnc entered FATAL state, too many start retries too quickly

进入容器中,运行x11vnc -display :1 命令,显示能够稳定进入运行状态,为什么在supervisord的管理下却无法运行,尝试了很多方法均无法解决。

在学习过程,看到有的人讲到supervisord管理的要求,得到启发,很可能是运行命令需要的用户身份引起的。

原配置文件:

[program:x11vnc]
priority=20
command=x11vnc -display :1 -rfbauth /password

修改如下:

[program:x11vnc]
priority=20
command=x11vnc -display :1 -rfbauth /password
user=root

系统成功运行。

在构建容器时,在容器内部操作,都是以root帐户运行命令,而打包之后,x11vnc以守护方式在容器运行,其实各种组件能否以普通用户身份运行有不同的情况,这次x11vnc在新的容器中是不行的,但以前多次这样做却没有问题。

再说一点Nextcloud性能相关的事

后台计划任务

在Nextcloud的文档中,要求正确配置好后台任务,后台任务的运行会影响服务器的性能。而对于如何设置该后台任务,在不同的操作系统下其实有不同的设置方法。我使用的是群晖NAS,它的操作系统应该是基于Linux内核和某个发行版进行定制开发的,而且我的Nextcloud是Docker容器安装,参照网络上的经验将后台任务设置以Cron运行,总是不能正常运行,参考官方文档也没有正常运行。

按上一篇文章解决了运行速度的问题后,又再研究了一下这个问题,顺利解决了,这里介绍一下自己的设置方法,供大家探讨。

一、命令格式

首先,由于我的Nextcloud是运行在Docker容器中,所以不能用一般的Linux命令直接在容器中设定,需要通过一些方法在操作系统中去运行容器中的程序。

这样在不同的系统下,如何在系统外执行容器中的命令其实有不同的方法,Nextcloud官方文档给的命令基本方法是:

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

而在群晖中,php -f 的基本格式根本不能正常执行,是非法命令。
群晖执行容器中命令的基本格式是 docker exec 容器名 容器中命令 (参数)
经过多次尝试,最终可行的命令方法是,将前述官方命令格式中的-f及路径文章,更换成容器名和容器中需要执行的容器中文件。最终命令如下:
docker exec –user www-data nextcloud php cron.php

因为Nextcloud是运行在Apache2 Web服务器上的,所以这里执行该命令需要用www-data用户身份去运行该命令。

二、群晖系统中计划运行该命令的方法

由于群晖是高度自定制的系统,直接在系统文件中设置该计划任务非常困难。其实,群晖提供了非常易用的桌面图形化的计划任务设置方法,十分简单方便。

2.1 打开任务计划,新增“用户定义的脚本”

2.2 编辑脚本的内容

2.2.1 用户帐号要选择 root

2.2.2 计划时间可以根据需要设置到分钟

2.2.3 用户定义的脚本就是前述的命令

Nextcloud中的计划任务有三种设置选项,默认的是AJAX,但官方推荐的是Cron,如果你的系统只是个人使用,选择使用AJAX也不会有太大的影响,这样就不会有错误提示,也不用这么麻烦去设置。