【運維技術】slc pm 啓動不了,異常排除問題記錄

問題描述

slc pm 啓動的時候報錯以下:javascript

[root@iZuf61qpjpeuqc5mjo4kn8Z lixiang-scf-web]# slc pm
strong-remoting deprecated The built-in CORS middleware provided by REST adapter was deprecated. See https://docs.strongloop.com/display/public/LB/Security+considerations for more details. ../../../../app/node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_strong-remoting@2.35.1@strong-remoting/lib/remote-objects.js:97:25
slc pm(4457) Unexpected end of JSON input

[root@iZuf61qpjpeuqc5mjo4kn8Z strongloop]# slc pm --json-file-db
strong-remoting deprecated The built-in CORS middleware provided by REST adapter was deprecated. See https://docs.strongloop.com/display/public/LB/Security+considerations for more details. ../node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_strong-remoting@2.35.1@strong-remoting/lib/remote-objects.js:97:25
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: SQLITE_FULL: database or disk is full
    at Error (native)
[root@iZuf61qpjpeuqc5mjo4kn8Z strongloop]#

定位問題:
node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_strong-remoting@2.35.1@strong-remoting/lib/remote-objects.js
查看文件:remote-objects.js
設置顯示行號:97行java

94 RemoteObjects.prototype.handler = function(name, options) {
 95   var Adapter = this.adapter(name);
 96   var adapter = new Adapter(this, options);
 97   var handler = adapter.createHandler();
 98
 99   if (handler) {
100     // allow adapter reference from handler
101     handler.adapter = adapter;
102   }
103
104   return handler;
105 };

緣由分析

  1. 在上一次系統部署後,包括後臺+ 前臺 在同一臺服務器上,初步懷疑是strongloop出現異常node

    嘗試卸載stronglooplinux

使用命令npm uninstall -g strongloop 報錯磁盤空間不足,發現問題後臺異常日誌將系統填滿,
使用du -sh *查找磁盤空間寫滿目錄,rm -rf *刪除異常空間目錄web

  1. 從新啓動新的錯誤
[root@iZuf61qpjpeuqc5mjo4kn8Z strongloop]# tailf nohup.out
events.js:160
      throw er; // Unhandled 'error' event
      ^
SyntaxError: Unexpected end of JSON input
    at Object.parse (native)
    at parseAndLoad (/app/node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_loopback-datasource-juggler@2.58.0@loopback-datasource-juggler/lib/connectors/memory.js:129:21)
    at /app/node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_loopback-datasource-juggler@2.58.0@loopback-datasource-juggler/lib/connectors/memory.js:115:9
    at tryToString (fs.js:455:3)
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:442:12)
# 文件內容:/app/node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_loopback-datasource-juggler@2.58.0@loopback-datasource-juggler/lib/connectors/memory.js:115:9
105 Memory.prototype.loadFromFile = function(callback) {
106   var self = this;
107   var hasLocalStorage = typeof window !== 'undefined' && window.localStorage;
108   var localStorage = hasLocalStorage && this.settings.localStorage;
109
110   if (self.settings.file) {
111     fs.readFile(self.settings.file, {encoding: 'utf8', flag: 'r'}, function(err, data) {
112       if (err && err.code !== 'ENOENT') {
113         callback && callback(err);
114       } else {
115         parseAndLoad(data);
116       }



經過修改源碼,找到對應的配置文件:npm

Memory.prototype.loadFromFile = function(callback) {
106   var self = this;
107   var hasLocalStorage = typeof window !== 'undefined' && window.localStorage;
108   var localStorage = hasLocalStorage && this.settings.localStorage;
109
110   if (self.settings.file) {
111     fs.readFile(self.settings.file, {encoding: 'utf8', flag: 'r'}, function(err, data) {
112       if (err && err.code !== 'ENOENT') {
113         callback && callback(err);
114       } else {
115         console.log(self.settings.file);
116         parseAndLoad(data);
117       }
118     });
119   } else if (localStorage) {
120     var data = window.localStorage.getItem(localStorage);
121     data = data || '{}';
122     parseAndLoad(data);
123   } else {
124     process.nextTick(callback);
125   }
126
127   function parseAndLoad(data) {
128     if (data) {
129       try {
130         console.log(data)
131         data = JSON.parse(data.toString());
132       } catch (e) {
133         return callback(e);
134       }

配置文件地址:/root/.strong-pm/裏面的全部配置jsonjson

解決方案:

刪除/root/.strong-pm/中的配置文件,啓動後從新生成,經過命令配置心得環境變量
/root/.strong-pm/strong-pm.json
備份後刪除便可。服務器

從新配置環境變量slc ctl env-set svc xxx=xxxapp

參考

官網地址:http://strong-pm.io/ide

相關文章
相關標籤/搜索