init.lua 863 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. function check_and_run(prog_name)
  2. local command = ("ps aux | awk '{if ($11 == \""..prog_name.."\")print $2}'")
  3. local exec = io.popen(command)
  4. local res = {}
  5. for i in exec:lines() do
  6. table.insert(res, i)
  7. end
  8. exec:close()
  9. local cs = 0
  10. for i = 1, #res do
  11. cs = cs+1
  12. if cs > 1 then
  13. local cmd = ("kill "..res[i])
  14. os.execute(cmd)
  15. end
  16. end
  17. if cs == 0 then
  18. command = ("sleep 2 && "..prog_name.." &")
  19. os.execute(command)
  20. end
  21. end
  22. function kill_all()
  23. local command = ("wmctrl -lp | awk '{print $1}'")
  24. local exec = io.popen(command)
  25. local cols = 0
  26. for i in exec:lines() do
  27. local cmd = ("wmctrl -ic "..i)
  28. os.execute(cmd)
  29. cols = cols + 1
  30. end
  31. exec:close()
  32. return cols
  33. end
  34. function shutdown(cmd)
  35. local res = kill_all()
  36. while res ~= 0 do
  37. res = kill_all()
  38. end
  39. os.execute(cmd)
  40. end