I was tired of having to disable/enable suspend every time so I wrote this addon, which works on Gnome3.
# © Michael Demetriou 2017 # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. bl_info = { "name": "Inhibit suspend while rendering - for gnome", "author": "Michael Demetriou", "version": (1, 0), "blender": (2, 78, 0), "description": "Inhibits system suspend while rendering", "warning": "", "wiki_url": "", "tracker_url": "https://gist.github.com/qwazix/290a25576f8c1f80cbc929f5a5d3f27e", "category": "System"} ########################################################################### import bpy import dbus from bpy.app.handlers import persistent cookie = 0 _session_bus = dbus.SessionBus() _dbus_screensaver = _session_bus.get_object('org.gnome.SessionManager','/org/gnome/SessionManager') inhibit = _dbus_screensaver.get_dbus_method('Inhibit','org.gnome.SessionManager') uninhibit = _dbus_screensaver.get_dbus_method('Uninhibit','org.gnome.SessionManager') @persistent def render_pre_handler(dummy): global cookie cookie = inhibit("BlenderRendering",dbus.UInt32(0),"inhibiting",dbus.UInt32(4)); @persistent def render_post_handler(dummy): global cookie uninhibit(dbus.UInt32(cookie)); def register(): bpy.app.handlers.render_pre.append(render_pre_handler) bpy.app.handlers.render_post.append(render_post_handler) def unregister(): bpy.app.handlers.render_pre.remove(render_pre_handler) bpy.app.handlers.render_post.remove(render_post_handler) if __name__ == "__main__": register()
You can post similar scripts for your platform with the goal of combining them in a multiplatform addon that could ship with blender.