Журнал в несколько файлов, в то время как процесс в фоне (nohoup)

Вышеупомянутые ответы, с помощью

:6,8s/^#//

идеальное решение, но немного громоздкий для ввода. Это может быть упрощено путем определения новых команд в ~/.vimrc.

command -range=% C :<line1>,<line2>s/^/#/
command -range=% D :<line1>,<line2>s/^#//

И можно просто ввести

:6,8C
:6,8D

занять место/удалить команду.

Если Вам нравится визуальный режим, можно определить карты

map <F7> :s/^/#/<CR>
map <F8> :s/^#//<CR>

Таким образом, что только необходимо выбрать диапазон строки в визуальном режиме и нажать F7 и F8, чтобы поместить и удалить комментарии соответственно.

4
25.03.2014, 01:37
3 ответа
[115236]ВАЖНОЕ ЗАМЕЧАНИЕ:[12174]Это почти наверняка не имеет отношения к данному вопросу. Я оставляю его здесь, так как он может помочь кому-то другому, но, по крайней мере, моя версия [115718]nohup[115719] в Debian не влияет на внутренние перенаправления, [115720]nohup[115721] будет захватывать только stderr и stdout скрипта.[12175] По умолчанию, [115722]nohup[115723] будет печатать все выходные данные на [115724]nohup.out[115725]. Обычно он информирует вас об этом, но вы не можете его увидеть, потому что работаете в фоновом режиме. В примере FOr попробуйте:[12176]Чтобы избежать этого, необходимо явно перенаправить вывод программы:[12177]Итак, вам нужно запустить свой скрипт и перенаправить его на вывод. И стандартный поток ошибок, и стандартный поток вывода будут перенаправлены в один и тот же файл:[12178]Это на самом деле разумное значение по умолчанию для nohup, так как весь смысл его в том, чтобы позволить вам закрыть ваш терминальный сеанс и оставить его запущенным в фоновом режиме, так что его печать в терминал приведет к срыву его назначения.[115248].
2
27.01.2020, 20:58
[116333] Тебе не нужна [12247] нохап [12248] ты знаешь. На самом деле, лично я никогда не находил ему применения.[12249]Это отсоединит ваш процесс от терминала, он будет продолжать делать все, что должен и не должен ломать.[12250]Демонстрационный скрипт[12251]Запустите Demo[12252]Output:[12253]Вывод:[12253]Вышеизложенное демонстрирует. Он собирает и запускает скрипт с именами [12254]/tmp/script[117090],[12255]chmod[117092][116930] как исполняемый, и запускает его в [12256]&background[12257] из [12258]&backgrounded ( subhell )[117096]. [12259]Сценарий [12260]rms /tmp/file0-9[12261]10 файлов и [12262]каждую секунду перекликается со строкой[12263]во всех 10 файлах. Я перехватываю некоторую [12264]$info[12265] из отключенного процесса и представляю ее через [12266]$(подстановка команд). В то время как ps[12267] все еще сообщает о [12268]$pid[12269]I capture, я знаю, что он все еще работает, поэтому я [12270] сплю.[12271]Когда он завершается, строки во всех 10 файлах подсчитываются с помощью [12272]wc.[12273]После того, как вы вызываете процесс таким образом, вы можете свободно закрыть его оригинальный родительский процесс, и он будет продолжать курсировать - он фактически отключен. [12274]Стоит упомянуть, я думаю, что процесс на самом деле изначально вызывается в [12275]$(подмена команды)[12276] и [12277]printfs[12278]me the [12279]$info[12280]I want, чтобы я мог эффективно контролировать его. Но как только он сбросит свой терминальный выход с помощью [12281]exec 1>&2[117118] (который закрыт в одной подоболочке с [117119]2>&-[117120]),[116956] процесс ускользнет, и мне придется подождать его на другом конце. Это лучшее из обоих миров, особенно если вы используете его для работы с входными каналами, до тех пор, пока вы можете обернуть свой ум вокруг всех перенаправлений и лидеров процессов. [12282] Все остальное только для демонстрации. Все, что вам нужно, чтобы запустить это верхний скрипт и:[12283]ПРИМЕЧАНИЕ:[12284]Это только печатает на терминал именно то, что я хотел продемонстрировать. Как отмечено в [12285]$PPID,[12286]этот процесс отключен терминалом и является прямым дочерним процессом [12287]$PID 1.[12288]
1
27.01.2020, 20:58
[117441] Спасибо всем вам за ответы. Я многому у них научился. Проблема решена. Nohoup не мешает ведению логов во внешние файлы. Источником моей проблемы, скорее всего, была производительность системы, так как я работаю со встроенным linux. Не зная, что делать, я перезагрузил систему и снова запустил скрипт в фоновом режиме. Теперь это работает.

title        Ubuntu 8.04, kernel 2.6.24-18-generic (recovery mode)
root        (hd1,0)
kernel        /boot/vmlinuz-2.6.24-18-generic root=UUID=cdfc1bc0-d14b-4b48-ad24-7bb40ec2ccde ro single
initrd        /boot/initrd.img-2.6.24-18-generic


# title        Ubuntu 8.04, kernel 2.6.24-17-generic
# root        (hd1,0)
# kernel        /boot/vmlinuz-2.6.24-17-generic root=UUID=cdfc1bc0-d14b-4b48-ad24-7bb40ec2ccde ro splash
# initrd        /boot/initrd.img-2.6.24-17-generic
# quiet

# title        Ubuntu 8.04, kernel 2.6.24-17-generic (recovery mode)
# root        (hd1,0)
# kernel        /boot/vmlinuz-2.6.24-17-generic root=UUID=cdfc1bc0-d14b-4b48-ad24-7bb40ec2ccde ro single
# initrd        /boot/initrd.img-2.6.24-17-generic

Проблема как-то решена, но вопрос в том, зачем нужна была перезагрузка. [117444]

0
27.01.2020, 20:58

Теги

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