1

したがって、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つのリレーがあります。ボタンは、ボタンを押すと変化する単なる絵です。

4

0 に答える 0