Это определенно проблема с Unity и терминалом GNOME. Я попытался воссоздать эту проблему с четырьмя другими версиями Ubuntu (хотя я не думаю, что кто-либо использовал терминал GNOME), и он делает это только с Unity.
Это не совсем проблема для проблемы но я могу сказать, что я установил xfce4-terminal и попробовал. Он вышел из полноэкранного режима, когда окно стандартного размера не было максимально.
Не ответ, а обходной путь. Если это то, что вы хотели бы, и оно работает для вас, вы можете изменить свой вариант по умолчанию, чтобы при использовании ярлыка CTRL + ALT + T он запустил терминал xfce4, а не терминал GNOME, вы можете использовать следующее:
sudo update-alternatives --config x-terminal-emulator
и выберите /usr/bin/xfce4-terminal.wrapper
. Это изменит ваш терминал по умолчанию на xfce.
Я бы сохранил PID процесса curl, sleep секунду и просто проверил, продолжает ли он работать с kill:
curl … &
pid=$!
sleep 1
if kill -0 $pid &>/dev/null; then
mailx -r me@domain.tld -s ALERT
fi
Вы можете легко проверить это с помощью sleep 1 или sleep 2 соответственно:
$ sleep 1 & pid=$!; sleep 1; if kill -0 $pid &>/dev/null; then echo running; fi
[1] 27520
[1]+ Done sleep 1
$ sleep 2 & pid=$!; sleep 1; if kill -0 $pid &>/dev/null; then echo running; fi
[1] 27599
running
По внешнему виду результат завитки, похоже, не имеет значения.
Итак, я предлагаю убить команду, если она занимает более одной секунды, используя тайм-аут. Вот один лайнер:
timeout 1s curl {URI} || mailx -r me@domain.tld -s ALERT
Если он истекает, он возвращает ошибку и запускается команда mailx.
Не тестировалось, но это должно работать.
У Curl есть опция для этого, --max-time (и --connect-time, если вы хотите контролировать затраты времени на этапе подключения в сеансе). Если произойдет таймаут, curl вернет код ошибки 28.
Так что-то вроде этого:
curl --max-time 60 <URL>
if [ $? -eq 28 ]
then
mailx -r me@domain.tld -s ALERT
fi
должно это сделать.
Я нашел этот сайт Все Curl, который описывает возможности Curl.
Я бы сохранил PID процесса curl, sleep секунду и просто проверил, продолжает ли он работать с kill:
curl … &
pid=$!
sleep 1
if kill -0 $pid &>/dev/null; then
mailx -r me@domain.tld -s ALERT
fi
Вы можете легко проверить это с помощью sleep 1 или sleep 2 соответственно:
$ sleep 1 & pid=$!; sleep 1; if kill -0 $pid &>/dev/null; then echo running; fi
[1] 27520
[1]+ Done sleep 1
$ sleep 2 & pid=$!; sleep 1; if kill -0 $pid &>/dev/null; then echo running; fi
[1] 27599
running
По внешнему виду результат завитки, похоже, не имеет значения.
Итак, я предлагаю убить команду, если она занимает более одной секунды, используя тайм-аут. Вот один лайнер:
timeout 1s curl {URI} || mailx -r me@domain.tld -s ALERT
Если он истекает, он возвращает ошибку и запускается команда mailx.
Не тестировалось, но это должно работать.
У Curl есть опция для этого, --max-time (и --connect-time, если вы хотите контролировать затраты времени на этапе подключения в сеансе). Если произойдет таймаут, curl вернет код ошибки 28.
Так что-то вроде этого:
curl --max-time 60 <URL>
if [ $? -eq 28 ]
then
mailx -r me@domain.tld -s ALERT
fi
должно это сделать.
Я нашел этот сайт Все Curl, который описывает возможности Curl.
Я бы сохранил PID процесса curl, sleep секунду и просто проверил, продолжает ли он работать с kill:
curl … &
pid=$!
sleep 1
if kill -0 $pid &>/dev/null; then
mailx -r me@domain.tld -s ALERT
fi
Вы можете легко проверить это с помощью sleep 1 или sleep 2 соответственно:
$ sleep 1 & pid=$!; sleep 1; if kill -0 $pid &>/dev/null; then echo running; fi
[1] 27520
[1]+ Done sleep 1
$ sleep 2 & pid=$!; sleep 1; if kill -0 $pid &>/dev/null; then echo running; fi
[1] 27599
running
По внешнему виду результат завитки, похоже, не имеет значения.
Итак, я предлагаю убить команду, если она занимает более одной секунды, используя тайм-аут. Вот один лайнер:
timeout 1s curl {URI} || mailx -r me@domain.tld -s ALERT
Если он истекает, он возвращает ошибку и запускается команда mailx.
Не тестировалось, но это должно работать.
У Curl есть опция для этого, --max-time (и --connect-time, если вы хотите контролировать затраты времени на этапе подключения в сеансе). Если произойдет таймаут, curl вернет код ошибки 28.
Так что-то вроде этого:
curl --max-time 60 <URL>
if [ $? -eq 28 ]
then
mailx -r me@domain.tld -s ALERT
fi
должно это сделать.
Я нашел этот сайт Все Curl, который описывает возможности Curl.