L.ui.view.extend({ title: L.tr('Processes'), description: L.tr('This list gives an overview over currently running system processes and their status.'), getProcessList: L.rpc.declare({ object: 'luci2.system', method: 'process_list', expect: { processes: [ ] }, filter: function(data) { data.sort(function(a, b) { return a.pid - b.pid }); return data; } }), sendSignal: L.rpc.declare({ object: 'luci2.system', method: 'process_signal', params: [ 'pid', 'signal' ], filter: function(data) { return (data == 0); } }), execute: function() { var self = this; var allow_signals = this.options.acls.status; return self.getProcessList().then(function(list) { var procTable = new L.ui.table({ columns: [ { caption: L.tr('PID'), key: 'pid' }, { caption: L.tr('Owner'), key: 'user' }, { caption: L.tr('Command'), key: 'command' }, { caption: L.tr('CPU usage (%)'), key: 'cpu_percent', format: '%d%%' }, { caption: L.tr('Memory usage (%)'), key: 'vsize_percent', format: '%d%%' }, { key: 'pid', format: function(v, n) { return $('
') .addClass('btn-group') .append($('