Согласно Жилю на Суперпользователь :
Простой, с использованием inotifywait (установите пакет
inotify-tools
вашего дистрибутива):while inotifywait -e close_write myfile.py; сделать ./myfile.py; done
Это имеет большое ограничение: если какая-то программа заменяет
myfile.py
другим файлом, а не записывает в существующийmyfile
,inotifywait
умрет. Так работает большинство редакторов.Чтобы преодолеть это ограничение, используйте
inotifywait
в каталоге:while true; сделать change = $ (inotifywait -e close_write, move_to, create.) change = $ {change #. / *} if ["$ change" = "myfile. ру "]; затем ./myfile.py; fi готово
Для стандартной ванильной Ubuntu с использованием Unity :CCSM :Диспетчер настроек CompizConfig на помощь:
sudo apt install compizconfig-settings-manager
Для конкретного случая использования OP -они сделали эту работу автоматически, обнаружив добавленные дисплеи с помощью электронного screen
API.
Важно:В app.on('ready')
состоянии, необходимом для работы API экрана, выполните следующие операторы:
const electron = require('electron');
electron.screen.on('display-added', (e,d) => { _reposition(); }
async function _reposition() {
const util = require('util');
const exec = util.promisify(require('child_process').exec);
const { stdout, stderr } = await setTimeout(() => { exec('compiz --replace') }, 5000);
console.log(stdout); console.log(stderr);
}
}