Попытайтесь отсоединить его сначала с screen -d
. Если это не работает, можно попробовать в увеличивающемся порядке акцента,
-d|-D [pid.tty.host]
does not start screen, but detaches the elsewhere running screen session. It has the
same effect as typing "C-a d" from screen's controlling terminal. -D is the equivalent
to the power detach key. If no session can be detached, this option is ignored. In
combination with the -r/-R option more powerful effects can be achieved:
-d -r Reattach a session and if necessary detach it first.
-d -R Reattach a session and if necessary detach or even create it first.
-d -RR Reattach a session and if necessary detach or create it. Use the first session if
more than one session is available.
-D -r Reattach a session. If necessary detach and logout remotely first.
-D -R Attach here and now. In detail this means: If a session is running, then reattach.
If necessary detach and logout remotely first. If it was not running create it and
notify the user. This is the author's favorite.
-D -RR Attach here and now. Whatever that means, just do it.
Можно использовать -t
переключатель к watch
который заставляет это не печатать заголовок. Однако это все еще очистит экран, таким образом, Вы могли бы быть более обеспечены с простым циклом оболочки:
while sleep 1; do
wc -l my.log
done
Одно из преимуществ, что можно легко добавить другие команды (например. date
) и/или передайте вывод по каналу через sed
переформатировать его. Между прочим, если Вы подкачиваете sleep 1
с wc
в цикле это автоматически завершится на ошибках.
Старый вопрос, но я просто нашел очень легкий ответ:
watch -n1 'wc -l my.log | tee -a statistics.log'
Это выполнит Ваш wc
каждую секунду добавьте его вывод к файлу statistics.log и также покажите его на экране.
Так, Вы закончите с файлом, заполненным числами, представляя последовательное количество строк my.log
.
Вы можете создать сценарий, который сделает это за вас. Я назвал свой keep
(например, продолжайте делать это) и поместил его в путь bin
.
Это мой сценарий:
#!/bin/bash
echo "Repeating command $* every second"
while sleep 1; do
"$@"
done
Encontré esta pregunta cuando estaba tratando de obtener una salida mejor/registrada de du -sh $data_path
. Usé el patrón "while command, do sleep" que se encuentra aquí, pero usé un AWK complejo para dar el resultado que quería.
while du -sh $data_path; do sleep 1; done | awk '
$1 != size {
size=$1;
path=$2;
time=systime();
seconds=time-prevtime;
if(seconds < 1000000000){
seconds=seconds" seconds"
}else{
seconds=""
}
print size, path, strftime("%m/%d/%Y@%H:%M:%S", time), seconds;
prevtime=time
}'
De hecho, hice esto como una sola línea, por lo que hay punto y coma. Pero para hacerlo legible, lo rompí. La salida se ve como:
502G /var/lib/cassandra/dump/ 05/22/2018@04:46:17
503G /var/lib/cassandra/dump/ 05/22/2018@04:46:59 42 seconds
504G /var/lib/cassandra/dump/ 05/22/2018@04:47:57 58 seconds
505G /var/lib/cassandra/dump/ 05/22/2018@04:48:55 58 seconds
506G /var/lib/cassandra/dump/ 05/22/2018@04:49:53 58 seconds
507G /var/lib/cassandra/dump/ 05/22/2018@04:50:50 57 seconds
508G /var/lib/cassandra/dump/ 05/22/2018@04:51:46 56 seconds
509G /var/lib/cassandra/dump/ 05/22/2018@04:52:44 58 seconds
510G /var/lib/cassandra/dump/ 05/22/2018@04:53:41 57 seconds
wait
- просто попробуйтеwatch -n 1 "sleep 5"
. – peterph 19.11.2012, 14:26watch
было полезно для, но это не дает Вам даже, что, таким образом, Ваше решение так хорошо, как часы базировались один, но никакой ответы "уровень, на котором файл журнала выращивает" вопрос с большой точностью. – Stéphane Chazelas 19.11.2012, 15:22watch
имеет a-p
опция, которая сделает это правильно, если вообще возможный (очевидно, Вы не можете сделать команды, которая занимает 5 секунд каждая 1 секунда, если Нельзя несколько одновременных). Я знаю, я записал этому :-P – derobert 19.06.2014, 20:46