Не может записать на недавно созданном разделе EXT4

Сначала сделайте резервную копию.

Run:

# cd 
# yum install java-1.6.0-openjdk-1.6.0.0-5.1.13.3.el6_5.rpm

Если дела идут не очень хорошо и в системе доступен RPM предыдущей версии, вы можете откатиться назад с:

# yum history undo last

Если его нет в системе, вы можете понизить рейтинг, переустановив предыдущую версию (после скачивания сначала) с:

# cd 
# yum downgrade java-1.6.0-openjdk-1.6.0.0-3.1.13.1.el6_5.rpm

1
16.04.2015, 18:02
1 ответ

Что-то подобное сделает то, что вам нужно.

#!/bin/bash
#
SOURCE="$1" COPY="$2"
cd "$SOURCE"
find . |
    sed 's!^\./!!' |
    while IFS= read ITEM
    do
        test -d "$ITEM" && { mkdir -p "$COPY/$ITEM"; continue; }
        BASE="${FILE%\/*}"
        ( cd "$COPY/$BASE" && ln -s "$SOURCE/$ITEM" )
    done

Каталоги создаются в целевом дереве COPY. Все остальное связано с абсолютным путем в дереве SOURCE. Убедитесь, что и SOURCE, и COPY указаны как абсолютные пути (начиная с /).

Если имеется большое дерево для копирования и требуется отчет о ходе выполнения по каталогу, можно добавить echo «$ ПРЕДМЕТА» > & 2; непосредственно перед командой mkdir .

(Я посмотрел на cp и cpio , но ни у одного из них нет возможности связать источник с символическими ссылками.)

-121--21211-

Цитирование документации bash (от man bash ):

JOB CONTROL
       Job  control  refers to  the  ability  to selectively  stop
       (suspend) the execution of  processes and continue (resume)
       their execution at a later point.  A user typically employs
       this facility via an interactive interface supplied jointly
       by the operating system kernel's terminal driver and bash.

Так что, проще говоря, установив -m (по умолчанию для интерактивные оболочки) позволяет использовать встроенные модули, такие как fg и bg , который будет отключен в набор + m (по умолчанию для неинтерактивных оболочек).

Для меня не очевидно, какова связь между управлением работой и тем не менее, уничтожение фоновых процессов на выходе, но я могу подтвердить, что имеется один: работающий набор -m; (сон 10; сенсорный контроль) & создать файл, если он выходит из оболочки сразу после ввода команда, но набор + m; (сон 10; touch control-off) и не будет.

Я думаю, что ответ лежит в остальной документации для set -m :

-m      Monitor  mode. [...]                     Background pro‐
        cesses run in a separate process group and a  line  con‐
        taining  their exit status is printed upon their comple‐
        tion.

Это означает, что фоновые задания, начатые при наборах + m , не являются фактическими «фоновые процессы» («Фоновые процессы те чей процесс идентификатор группы отличается от идентификатора терминала "): они совместно используют один и тот же процесс идентификатор группы в качестве оболочки, которая их начала, а не иметь свой собственный группы процессов, такие как соответствующие фоновые процессы. Это объясняет поведение, наблюдаемое, когда оболочка выходит из строя до некоторой части ее фона рабочие места: если я правильно понимаю, при увольнении посылается сигнал процессы в той же группе процессов, что и оболочка (таким образом убивая фоновые задания, запущенные в набор + m ), но не в соответствии с заданиями других группы процессов (оставляя в покое запущенные истинные фоновые процессы) в set -m ).

Таким образом, в вашем случае сценарий startup.sh , предположительно, запускает фоновое задание. Когда этот сценарий выполняется неинтерактивно, например по SSH, как в вопросе, с которым вы связаны, управление заданиями отключено, фоновое задание совместно использует группу процессов удаленной оболочки, и таким образом, убивается, как только этот снаряд выходит. И наоборот, путем включения задания управление в этой оболочке, фоновое задание приобретает свой собственный процесс группа и не погибает при выходе из родительской оболочки.

-121--27807-

Файловая система fat32 не имеет понятия владельца или разрешений. На справочной странице для mount перечислены следующие параметры, которые помогают приблизиться к ожиданиям пользователей Unix:

 uid = value и gid = value.
Задайте владельца и группу всех файлов. (По умолчанию:uid и gid
текущего процесса.)

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

Таким образом, когда вы монтировали его, он был смонтирован с вашим userid, groupid и umask (который, я полагаю, 022 ). Все файлы и каталоги будут принадлежать вам и будут иметь разрешения rwxr-xr-x .

ext4, с другой стороны, является классической файловой системой Unix, в которой хранятся сведения о пользователях, группах и разрешениях. Если каталог создается как root, он будет принадлежать root, пока для его изменения не будет использован chown . Можно изменить разрешения группы или других с помощью chmod , чтобы сделать объект доступным для записи нескольким пользователям.

1
27.01.2020, 23:50

Теги

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