我遇到了一种奇怪的行为,这让我很抓狂。我试图在服务器启动时运行一些指南针监听器,我尝试了几种方法,所有方法都是以 root 用户身份进行的。
- 创建服务来运行“我的脚本”
- 从 /etc/rc.local 运行“我的脚本”
- 直接从 /etc/rc.local 运行命令
- 从 cron@restart 运行“我的脚本”
- 使用 root 用户从 ssh 会话手动运行“我的脚本”
- 使用 root 用户从 ssh 手动运行“我的脚本”的命令
除了内存消耗外,其他一切都按预期运行。
在最后两种情况下,从 ssh 运行脚本/命令,创建的 2 个分离屏幕消耗了我认为正常的内存消耗:
但在其他 4 种方式中,分离的屏幕会消耗非常高的资源:
该命令非常简单(针对不同的文件夹运行两次):
screen -dm -S name_a compass watch /target_folder
请问,有人能告诉我可能发生什么事吗?
答案1
我对此一无所知compass
,但有一些初步了解。
两种情况下的内存使用率似乎相似,均为 0.6%,但 CPU 使用率不同。
您启动的前 4 个会话和最后 2 个交互式 (“手动”) 会话有何不同:
- 环境变量(
export
)会有所不同,shell(bash
/sh
)也可能不同; stdin
//将在交互式登录中连接到您的终端,并在前 4 种情况下连接到。该命令是否需要输入或输出,并且处理缺乏输入或输出的情况效率低下stdout
?stderr
/dev/null
compass
再说一遍,我不知道compass
——只是一些想法。