如何使用Luci openwrt中的XHR.poll轮询系统进程的状态?

时间:2017-04-27 18:25:49

标签: javascript lua openwrt luci

我正在运行一个流程。现在,我可以使用pidof "process" >> /dev/null;echo $?查看流程的状态。这将返回0或其他值。

Luci XHR.poll我可以XHR.poll(5, '<%=luci.sys.exe("pidof "process" >> /dev/null;echo $?")%>', null, function(x, information) { //do something } 获取每5秒的流程状态,如

#include <stdio.h>
#include <cstdlib>
#include <string>
#include <iostream>


#include "dll.h"
#include "mybase64.h"

using namespace std;

USING_NAMESPACE(CryptoPP)



int main()
{
std::cout << "Crypto++ Example" << endl;

std:cout << "TEST" << endl;


const int textSize = 4;
const int keySize = 24; 

byte iv[] = { 240, 4, 37, 12, 167, 153, 233, 177 };
byte key[] = {191, 231, 220, 196, 173, 36, 92, 125, 146, 210, 117, 220, 95, 104, 154, 69, 180, 113, 146, 19, 124, 62, 60, 79};


byte encryptedText[textSize];

char cText[] = {'T', 'E', 'S', 'T'};

byte* text = new byte[textSize];

for (int ndx = 0; ndx<4; ndx++)
{
    text[ndx] = (byte)cText[ndx];
}


CFB_FIPS_Mode<DES_EDE3>::Encryption encryption;

encryption.SetKeyWithIV(key, keySize, iv);

encryption.ProcessString(encryptedText, text, 4);

string encoded;

encoded = base64_encode(encryptedText, 4);

cout << encoded << endl;

system("pause");

return 0;
 }

这是对的吗?如果没有,我可以获得任何样本,用于在luci / lua中进行轮询状态吗?

1 个答案:

答案 0 :(得分:0)

我解决了。我们可以通过添加

来轮询XHR请求
XHR.poll(5, '<%=REQUEST_URI%>', {query:1},
function(x, rv){
  //add response actions here
 }
);

query : 1您可以通过在lua代码的if循环中添加luci.sys.exe来执行luci.http.formvalue("status") == "1"流程