したがって、node.js に問題があります。どういうわけか、server.js を実行していると、プロセッサがすぐに熱くなりました。それで、「top」コマンドを使用する理由を理解しようとします。リストを見ると、数秒おきに実行されるコマンド「find」があることがわかりました。そして、それは 1 つだけではありません... 10 以上で、CPU を 10% 以上使用しています。
その後、コマンド「cat /proc/"find_pid"/cmdline」を使用すると、次のようになりました: find -L/(-ipath/.git-prune-or-ipath/node_modules-prune-or-ipath/bower_components- prune-or-ipath/.sass-cache-prune)-or(-typef-and-mmin-10.316666666666666-print)
他の「find」コマンドの PID を変えて実行したところ、 -print の前の数字が変わった以外はほぼ同じ結果になりました。
これを引き起こした原因を知っている人はいますか?
なぜなら、私はここで何が起こったのか完全に盲目だからです。
nodemon を使用して server.js を実行しています。
以前はありがとう...
私のコード:
//create html
function createHTML (timestamp) {
return <html_body>
}
//ENDPOINTS
app.get ('/', function (req,res) {
res.send (createHTML());
});
//execute shell script to trigger relay
function relayTrigger (num,status) {
if (num != 8 ) exec <gpio_script>
else if (num == 8 ) exec <gpio_script>
}
//for getting the status
app.get('/getRelay', function (req, res){
date = new Date();
dateString = date.toISOString();
console.log('Get server: ' +
' '
+ dateString);
res.send (<status>);
res.end();
})
//For controlling the relay
app.get ('/relayUpdate', function (req,res) {
var on_button_snip = '';
var off_button_snip = '';
console.log ("Relay "+ req.query.relayNum + " is "+req.query.status);
//determine displayed button by parsing the status parameter
if (req.query.status == "On") {
on_button_snip = '<img src="public/ON_bright.PNG" style="width:154px;height:99px">';
off_button_snip = '<img src="public/OFF_dark.PNG" style="width:154px;height:99px">';
} else {
on_button_snip = '<img src="public/ON_dark.PNG" style="width:154px;height:99px">';
off_button_snip = '<img src="public/OFF_bright.PNG" style="width:154px;height:99px">';
}
//determine which snippet needs to be updated by parsing the relayNum argument
relay_number = parseInt (req.query.relayNum);
switch (relay_number) {
case 1:
r1_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=1&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=1&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (97,"on");
relay1status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (97,"off");
relay1status = "0";
}
//console.log (r1_html_snip);
break;
case 2:
r2_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=2&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=2&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (108,"on");
relay2status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (108,"off");
relay2status = "0";
}
//console.log (r2_html_snip);
break;
case 3:
r3_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=3&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=3&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (100,"on");
relay3status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (100,"off");
relay3status = "0";
}
//console.log (r3_html_snip);
break;
case 4:
r4_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=4&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=4&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (101,"on");
relay4status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (101,"off");
relay4status = "0";
}
//console.log (r4_html_snip);
break;
case 5:
r5_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=5&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=5&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (117,"on");
relay5status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (117,"off");
relay5status = "0";
}
//console.log (r5_html_snip);
break;
case 6:
r6_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=6&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=6&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (105,"on");
relay6status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (105,"off");
relay6status = "0";
}
//console.log (r6_html_snip);
break;
case 7:
r7_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=7&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=7&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (103,"on");
relay7status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (103,"off");
relay7status = "0";
}
//console.log (r7_html_snip);
break;
case 8:
r8_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=8&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=8&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (106,"on");
relay8status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (106,"off");
relay8status = "0";
}
//console.log (r8_html_snip);
break;
case 9:
r1_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=1&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=1&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r2_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=2&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=2&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r3_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=3&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=3&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r4_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=4&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=4&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r5_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=5&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=5&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r6_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=6&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=6&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r7_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=7&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=7&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r8_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=8&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=8&status=Off'>"+off_button_snip+"</a></td></tr></table>",
r9_html_snip = "<table style='width:25%'><tr><td><a href='relayUpdate?relayNum=9&status=On'>"+on_button_snip+"</a></td><td><a href='relayUpdate?relayNum=9&status=Off'>"+off_button_snip+"</a></td></tr></table>";
if (req.query.status == "On") {
relayTrigger (8,"on");
relay9status = "1";
}
else if (req.query.status == "Off") {
relayTrigger (8,"off");
relay9status = "0";
}
//console.log (r9_html_snip);
break;
}
res.redirect ("/");
res.end();
});
app.listen (port, function (err) {
console.log ('Listening on port ' + port);
});
基本的に、HTMLを使用してブラウザから制御する8つのリレーがあります。ボタンは、ボタンを押すと変化する単なる絵です。