Хотя coretuils с версии 7.0 включает команду тайм-аута, Вы упомянули некоторые среды, которые не будут иметь его. К счастью, pixelbeat.org записали сценарий тайм-аута sh
.
Я использовал его прежде несколько раз, и это работает очень хорошо.
http://www.pixelbeat.org/scripts/timeout (Примечание: сценарий ниже был немного изменен от того на pixelbeat.org, см. комментарии ниже этого ответа.)
#!/bin/sh
# Execute a command with a timeout
# Author:
# http://www.pixelbeat.org/
# Notes:
# Note there is a timeout command packaged with coreutils since v7.0
# If the timeout occurs the exit status is 124.
# There is an asynchronous (and buggy) equivalent of this
# script packaged with bash (under /usr/share/doc/ in my distro),
# which I only noticed after writing this.
# I noticed later again that there is a C equivalent of this packaged
# with satan by Wietse Venema, and copied to forensics by Dan Farmer.
# Changes:
# V1.0, Nov 3 2006, Initial release
# V1.1, Nov 20 2007, Brad Greenlee
# Make more portable by using the 'CHLD'
# signal spec rather than 17.
# V1.3, Oct 29 2009, Ján Sáreník
# Even though this runs under dash,ksh etc.
# it doesn't actually timeout. So enforce bash for now.
# Also change exit on timeout from 128 to 124
# to match coreutils.
# V2.0, Oct 30 2009, Ján Sáreník
# Rewritten to cover compatibility with other
# Bourne shell implementations (pdksh, dash)
if [ "$#" -lt "2" ]; then
echo "Usage: `basename $0` timeout_in_seconds command" >&2
echo "Example: `basename $0` 2 sleep 3 || echo timeout" >&2
exit 1
fi
cleanup()
{
trap - ALRM #reset handler to default
kill -ALRM $a 2>/dev/null #stop timer subshell if running
kill $! 2>/dev/null && #kill last job
exit 124 #exit with 124 if it was running
}
watchit()
{
trap "cleanup" ALRM
sleep $1& wait
kill -ALRM $$
}
watchit $1& a=$! #start the timeout
shift #first param was timeout for sleep
trap "cleanup" ALRM INT #cleanup after timeout
"$@" < /dev/tty & wait $!; RET=$? #start the job wait for it and save its return value
kill -ALRM $a #send ALRM signal to watchit
wait $a #wait for watchit to finish cleanup
exit $RET #return the value
То, что Вы хотите, является мультиместом конфигурация Xxorg. Я не знаю, какой дистрибутив Вы используете, таким образом, я просто свяжусь с записью Wiki Xorg. X хорошо подходит для этого, с тех пор 20 + несколько лет назад, многие учреждения сделали это со всеми их машинами Unix.
Вы не сможете использовать ту же клавиатуру и мышь для обоих дисплеев, все же.
Я просто записал быструю небольшую подсказку относительно того, как настроить и выполнить отдельный xsessions на 2 мониторах. Проверьте его http://www.nu2upc.com/linux-tips/configuring-dual-displays/
Сначала позвольте мне объяснить, что я собираюсь выполнить, чтобы видеть, удовлетворяет ли это Ваши потребности. Я собираюсь быть выполнением 2 мониторов, 1 соединен через VGA и другой DVI. Монитор VGA должен быть подключен к экрану 0 как монитор 0 на xsession 0 и DVI, находящемся на 1.
Проблема, с которой я столкнулся, состоит в том, что система автоматически присваивала 0 монитору DVI поэтому не предоставление мне результаты, которых я требовал.
Решение состояло в том, чтобы просто отключить монитор DVI, перезагрузку и запуститься с чистого xorg.conf файла. Я открыл настройки Nvidia, проверенные, чтобы видеть, что мой монитор VGA был настроен путем, я хотел, затем я включил свой монитор DVI, “X Server Display Configuration”, на который нажимают, затем “Обнаруживают Дисплеи”, и он нашел монитор DVI. Я затем установил монитор DVI для права моего монитора VGA и "Configure", на который нажимают, и выбранный “Отдельный, X Экранов” затем гарантировали, что все другие настройки состояли в том, как мне нравится. Я нажал на “Save X Configuration File” и сказал да для слияния изменений. Затем я перезагрузил свою систему. и альт! У меня теперь есть свои 2 дисплея, выполняющие каждого в отдельном xsessions!
export DISPLAY=:2 && vlc myfile
запустил бы VLC на другом экране, затем я мог использовать плагин HTTP для управления им. Имеет смысл. Я буду видеть, могу ли я получить что-то работающее здесь. – Naftuli Kay 24.08.2011, 23:16synergy
использовать ту же клавиатуру и мышь через мультиместо X дисплеев или на той же машине или на даже сетевых машинах. положительная сторона – Caleb 24.08.2011, 23:55DISPLAY=:2 vlc myfile
. Это заменяет переменную ДИСПЛЕЯ дляvlc
управляйте только, не топая на переменной ДИСПЛЕЯ стартовой оболочки. Это еще более полезно, если Вы фон VLC, таким образом, можно продолжать использовать то окно терминала. – Warren Young 25.08.2011, 00:14