本帖最后由 liuje 于 2018-12-8 22:16 编辑
我本以為 你可能是系統固件版本更新過(但我的目前也是最新版固件了), 導致抓不到開機的串口輸出訊息才導致失效的,於是改寫了原來pro mini程序, 變成跟F大那篇一樣, 定時10秒鐘就去檢查程序是否運行了, 如沒有就運行起來..
這種方法, 可以避免以後固件大幅度升級後, 可能輸出的文字串會不同, 造成原來的方式失效. 也提供出來給大家參考.
如果以後原代碼失效了, 可以改回跟F大相同的, 定時檢查的作法. 代碼如下 :
#include <Arduino.h>
void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
for (int i=0; i<30; i++) {
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
delay(50);
}
digitalWrite(LED_BUILTIN, LOW);
}
void loop()
{
// 每10秒檢查 dropbear 以及 mico.sh 是否運行? 如果沒有,則打開ssh以及運行mico.sh
Serial.println();
Serial.println("test `ps|grep 'dropbear -r /data/dropbear_rsa_host_key'|grep -v grep|wc -l` -eq 0 && dropbear -r /data/dropbear_rsa_host_key");
Serial.println();
Serial.println("test `ps|grep 'sh /data/mico.sh'|grep -v grep|wc -l` -eq 0 && sh /data/mico.sh > /tmp/mico.log 2>&1 &");
delay(10000);
}
复制代码