xrandr
выполняется, но сбои. Необходимо прочитать его сообщения об ошибках, они сказали бы Вам что случилось. Вы могли просто поместить весь вывод из своего сценария в файле журнала путем добавления этой строки сразу после #!
строка:
exec >/home/hoppe/udev.out 2>&1
Вы найдете, что сообщение:
Can't open display
Как любые другие X программ, xrandr
говорит с X-сервером, обозначенным DISPLAY
переменная среды. Необходимо сказать это который дисплей говорить. Никогда, у Вас может быть несколько выполнений X-серверов, некоторые говорящие с аппаратными средствами, некоторое отображение удаленно (например, VNC), некоторые не имеющие видимого дисплея (например, xvfb), и т.д. Открытие, которое X дисплеев подключены к конкретной части аппаратных средств, не легко, но на практике, просто примите это :0
подключен к аппаратным средствам, и все другие не. Так помещает это в Ваш сценарий:
export DISPLAY=:0
После того как Вы разобрались DISPLAY
проблема, необходимо будет разрешить тот сценарий получать доступ дисплею. Это не автоматически, даже если сценарий работает как корень, потому что X является сетевым прозрачным: локальному корню нужно только позволить получить доступ к локальным дисплеям, и нет никакого специального механизма для этого, обычный механизм cookie запрашивает корень также. Это покрыто, мной могу запустить графическую программу на рабочем столе другого пользователя как корень?.
Если Ваш пользователь запустил процесс, и у Вас только есть доступ удаленно, Ваши опции ограничены.
Я попытался бы удаленно уничтожить процессы, Это может занять время, чтобы быть поставленным в очередь!
ssh -l $USER $HOSTNAME 'pkill -9 MATLAB'
Если это выполняется, но не уничтожает рабочий процесс. Вы могли всегда уничтожать все процессы, созданные Вашим пользователем. это было бы большим количеством последнего средства, очевидно, избежало бы, если Вы знаете имя процесса.
ssh -l $USER $HOSTNAME 'pkill -9 -u $USER'
Если бы у Вас есть какой-либо KVM или доступ IPMI, это было бы временем для слома его.
Если машина не реагирует ни на какой сетевой запрос, Вы политы из шланга. Простым процессом устранения, если Вы не можете получить удаленный доступ, Вам нужен консольный доступ.
Будьте терпеливы. Если машина подкачивает в большой степени, может потребоваться несколько минут для ответа.
Для будущего сохраните ssh сессию открытой, и имейте идентификатор процесса потенциально неприятного готового процесса. Все основные оболочки имеют kill
встроенная команда, так, чтобы можно было уничтожить процесс, даже если машина в большой степени является объектом загрузки или пользователя, достигла своего предела процесса.
Также для будущего, можно ограничить ресурсы, которые процесс Matlab может выделить путем выполнения ulimit
команда в оболочке, где Вы запускаете его. В частности, ulimit -Sv 42
ограничит общий объем виртуальной памяти, которую любой процесс может выделить 42 КБ (предел относится к каждому процессу, впоследствии запущенному той оболочкой).