Медленная начальная загрузка и медленный рабочий стол, наряду с непонятными сообщениями журнала

Хорошо, оказывается, что в моем конкретном случае такие сценарии плавления должны интерпретироваться строго как аргументы командной строки; так что только один sed в ОП не совсем режет его (плюс есть другие вещи, как профили, которые можно установить). Итак, вот что я в итоге сделал - вероятно, может служить вдохновением в других случаях, которые название ОП охватывало бы.

Я в конечном итоге остановился на использовании этого: создать файл test.shmelt , который фактически является сценарием bash , который содержит мой комментированный код плавкого сценария; сделать этот файл исполняемым chmod + x test.shmelt ; после редактирования сценария запустите его как ./test.shmelt .

При запуске он создаст файл test.melt в /tmp и вызовет плавление в этом файле. Поскольку плавка обычно продолжает работать в терминале после окончания его программы, с помощью ловушки на SIGINT этот временный файл может быть очищен при нажатии Ctrl-C (но не обязательно).

Таким образом, у меня все еще есть комментарии; может быстро редактироваться в исходном файле и выполнять плавку и просматривать результаты; и у меня есть файл, «очищенный» от комментариев, который я могу использовать позже.

Вот код test.shmelt :

#!/bin/bash

# call with: ./test.shmelt


#TMLTFILE="test.melt" # for final export
TMLTFILE="${0%%.shmelt}.melt" # for final export

function finished() { echo ; } ; # use this when testing or montaging to keep exported (tmp) .melt file; uncomment the below to remove the tmp file
#~ function finished() { rm /tmp/"$TMLTFILE"; echo "fin1 $0" ; } ; trap finished SIGINT ;

echo 'Remember `pulseaudio --start` to hear audio with `melt`!'
pulseaudio --check
if [ $? -ne 0 ]; then
    pulseaudio --start
fi

DIRNAME=$(readlink -f $(dirname $0))
PROFILE="square_ntsc"


echo "
# the profile doesn't work from here;
# still has to be specified on command line
# but including it here so the path is saved for testing
#~ -profile
#~ ${PROFILE}

-video-track

  # can avoid pixmap: here, but that s the producer;
  # qimage: also works
  # NB it is NOT '-out 1645'; but 'out=1645'!!
  /media/myimg/%05d.bmp
  in=0
  out=1645
  #~ length=1645
  #~ loop=0
  #~ eof=stop

-audio-track

  /media/mysnd/snd.wav
  in=0
  out=1645
  #~ loop=0
  #~ eof=stop

#-consumer xml # doesn't work here

" | sed -e 's/#.*$//' -e 's/^[[:space:]]*//' -e '/^[[:space:]]*$/d' -e 's/[[:blank:]]*$//' > ${TMLTFILE}

# the sed: remove comments; remove indents; remove empty lines; remove spaces at end of line


# eof: one of: stop, loop, continue or pause (eof=stop)
# to loop, use `melt eof=loop ...` (but make sure first,
#  that the edit as a whole stops - use xml to check!)
# due to caching issues, preview pieces (up to ~300 frames) like this:
melt eof=loop -profile ${PROFILE} ${TMLTFILE} in=200 out=400

# must have profile here, for checking w/ -consumer xml (else segfault)
# this command may add additional producers to the xml!:
## melt -profile ${PROFILE} ${TMLTFILE} -consumer xml

# use this to generate xml if needed:
#melt -profile ${PROFILE} $(cat ${TMLTFILE} | tr '\n' ' ') -consumer xml

# if exited normally, cleanup:
finished

-121--55563-

Может быть лучшим способом, но

tmux list-panes | wc -l

работает.

-121--100647-

Можно использовать то, что DevNull предлагал, какие rsynks периодически. Лично я бы использовал inotify . Это жалкий инструмент, который вы можете дать папку для просмотра. Он настраивает часы и уведомляет о каждом изменении файловой системы. Затем можно запустить rsync на основе триггера из inotify .

Для конкретного случая, о котором вы говорите в конце, вы можете использовать триггер от inotify, чтобы увидеть, что произошло, а затем написать простой сценарий bash, чтобы проверить, является ли это застежка -молния, который был добавлен в папку A, и если он есть, то вы можете просто распаковать его в папку B (или что бы вы ни хотели сделать) вместо того, чтобы просто копировать застежка -молния.

0
04.08.2014, 09:10
2 ответа

Попробуйте заставить систему выполнить проверку диска. Linux использует fsck для проверки диска, диск не может быть смонтирован в это время.

попробуйте запустить linux OS в режиме восстановления (в консоли, а не на gui), затем root или с помощью sudo (не уверен, что это возможно с Mint) выполните

# shutdown -rF now

это заставит систему перезагрузиться с запуском fsck

.
1
28.01.2020, 02:52

Грязный хак

Если вы используете уровень запуска 5, то перед каждым сценарием запуска (который, скорее всего, будет в /etc/init.d/rc5.d) печатайте метка времени во временном файле с именем сценария.

После загрузки машины вы можете выяснить, какой сценарий отнимает много времени. Затем вы можете предпринять соответствующие действия

Имейте в виду, я называю это грязным взломом , потому что эти изменения напрямую влияют на систему.

0
28.01.2020, 02:52

Теги

Похожие вопросы