Как объединиться и и &&?

Выполнение апачские конфигурации недостаточно. Чтобы заставить его работать, необходимо настроить несколько IP-адрес в поле Centos (RedHat).

Предположение, что у Вас есть только один физический сетевой интерфейс eth0, затем у Вас есть этот файл, которые содержат все соответствующие параметры:

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes

(Это - демонстрационная статическая конфигурация IP для IP=192.168.1.1, Ваш может и варьироваться),

Все это объяснено здесь: CENTOS-файлы-конфигурации-сети и CENTOS-интерфейсные Конфигурационные файлы

Присваивать другой IP тому же физическому сетевому интерфейсу eth0 сделайте это (как root) :

$ cd /etc/sysconfig/network-scripts/
$ cp ifcfg-eth0 ifcfg-eth0:1
$ vi ifcfg-eth0:1

и затем измените IPADDR на новый файл (и проверьте/измените все другие параметры),

Можно сделать то же для третьего нового выполнения IP cp ifcfg-eth0 ifcfg-eth0:2 и отредактируйте файл.

Затем необходимо повторно соединить сеть звездой для применения, изменения (остановите апача прежде):

$ service network restart

Проверьте новую конфигурацию:

$ ifconfig 

Вы будете видеть, перечислил интерфейсную конфигурацию для eth1 , eth1:1 , eth1:2 (и probabily больше iterfaces как lo -> обратная петля)

4
09.01.2015, 06:41
5 ответов

Если вы не будете выходить из терминала, вы можете запустить его следующим образом:

./script. fcgi --socket /tmp/fcgi-socket && chmod a+w /tmp/fcgi-socket &

Если вы собираетесь выйти из системы, то лучше запустить скрипт под терминальным мультиплексором типа screen или tmux.

Я не очень хорошо знаком с tmux, но это можно сделать с помощью экрана screen:

Запустите экран, используя команду экрана screen. В новой оболочке 'screen' start:

./script. fcgi --socket /tmp/fcgi-socket && chmod a+w /tmp/fcgi-socket

Нажмите enter

Detach from the screen, нажав ctrl + a, затем ctrl + d

Вы можете подключиться обратно к экрану после того, как вернетесь, используя:

screen -r

Выполнение этого скрипта под экраном, запустит скрипт в фоновом режиме. При повторном подключении к экрану вы сможете подключиться обратно к этому shell'у.

0
27.01.2020, 20:55

Предполагая, что я понимаю, что вы хотите сделать, и ваш процесс не склонен к подсказки, я бы сделал что-то вроде:

/long/running/process with args &
LRP_PID=$!
sleep 2
if jobs %% #It's alive!
then 
    chmod a+w ...
fi

(или kill -0 $ Lrp_pid вместо задания 1 .)

3
27.01.2020, 20:55
> awk '/^182$/ { startline=1; }; startline == 0 { next; }; /^ABC$/ { print "line " NR ": " $0; exit; }' file
line 7: ABC
-121--47660-

Если вы используете систему на основе Debian-Ubuntu (например, Linux Mint), то fdisk (util-linux 2,20,1) не понимает GPT.

Вы должны попытаться разобрать -l и уже разбили/отформатировали диск? Использование gparted (если используется графический интерфейс пользователя), вероятно, будет проще.

Я не уверен насчет lsblk , он говорит, что он читает из sysfs . Возможно, на диске есть только один маленький раздел или странный MBR/GPT.

Но комментарий Кристиана Чупиту и ссылка из Seagate звучат очень многообещающе, но похоже, что речь идет о драйверах Windows...

При поиске "parted Error :/dev/sdc: unnognised disk label" появилась ссылка, которая, похоже, делает то, что вы хотите: Как создать раздел в Linux для > 2TB Size с помощью Parted GPT . Я полужирным шрифтом ( embiggered? ) сообщение об ошибке, о котором идет речь, выглядит так, как будто оно должно исчезнуть после создания GPT. (Ставлю, что использование gparted будет аналогично/проще.)

Используйте команду mklabel для установки метки диска GPT, как показано ниже.

# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) print

Ошибка :/dev/sdb: нераспознанная метка диска

(parted) mklabel gpt

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 5909GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

[Затем он продолжает создание раздела, но приведенные выше команды выглядят наиболее актуально]

Create > 2TB Partition using Parted mkpart

Используйте команду parted 's mkpart, как показано ниже, чтобы создать раздел, который больше 2TB. В этом примере создается раздел, размер которого примерно 6TB.

# parted /dev/sdb

(parted) mkpart primary 0GB 5909GB

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 5909GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  5909GB  5909GB               primary

Если попытка создания GPT завершается неуспешно, необходимо найти несколько хороших сообщений об ошибках. Или если он по-прежнему сообщает только о размере, как 800GB, я бы начал подозревать, что может быть что-то не так с диском, но так как SMART считает, что это нормально, то это оставляет linux драйверы/ядро...

И вы не используете какой-то внешний USB-корпус? Он подключен непосредственно к компьютеру, как внутренний HD?

-121--71607-

Мне кажется, что многие люди это переосмысливают. Достаточно сказать

./script.fcgi --socket /tmp/fcgi-socket & sleep 2; chmod a+w /tmp/fcgi-socket

, потому что синтаксически , и действует как ; . (Да, конечно, я знаю, что они семантически отличаются.)

0
27.01.2020, 20:55

Да, конечно, это возможно: это синтаксис

 (/absolute/path/to/script/script.fcgi --socket /tmp/fcgi-socket &) && (sleep 2; chmod a+w /tmp/fcgi-socket)

Но имейте в виду комментарий Микеля, который правильный.

EDIT:

с учетом комментария @muru ниже, позвольте мне объяснить. ОП не хочет выполнять 2-ю и 3-ю команды после успешного завершения первой: он явно заявляет, что это долгосрочная команда. Операционный совет хочет выполнить третью команду после успешного завершения первой команды start. Приведенный выше один лайнер делает именно это.

EDIT2:

При подсказке @muru следующий одиночный лайнер будет проверять на ошибки при запуске начальных команд:

 (/absolute/path/to/script/script.fcgi --socket /tmp/fcgi-socket  2> /path/to/errors.txt &) && (sleep 2; if ! [ -s /path/to/errors.txt]; then chmod a+w /tmp/fcgi-socket; fi)
1
27.01.2020, 20:55

Вы можете поместить процесс (или несколько процессов) в фоновом режиме с помощью &, а затем в дальнейшем в вашем сценарии вы можете подождать, пока они все не закончатся, используя команду bash builtin wait. Вот это реклама от man bash:

   wait [-n] [n ...]
          Wait for each specified child process and return its termination
          status.  Each n may be a process ID or a job specification; if a
          job spec is given, all processes  in  that  job's  pipeline  are
          waited  for.  If n is not given, all currently active child pro‐
          cesses are waited for, and the return status is zero.  If the -n
          option  is  supplied,  wait  waits  for any job to terminate and
          returns its exit status.  If n specifies a non-existent  process
          or  job, the return status is 127.  Otherwise, the return status
          is the exit status of the last process or job waited for.

Проверка статуса возврата wait для конкретного задания может обеспечить "в случае успеха" проверку, что && делает, как и в этом тестовом сценарии:

#!/bin/bash
sleep 3 &
s3pid=$!
true &
trpid=$!
false &
fapid=$!

echo "Expecting success next, since true returns 0"
wait $trpid && echo "wait process true success" || echo "wait process true FAIL"
echo "Expecting FAIL next, since false returns 1"
wait $fapid && echo "wait process false success" || echo "wait process false FAIL"
echo "Expecting success next, since wait alone always returns 0"
wait && echo "wait for all success" || echo "wait for all FAIL"

Но только для одной команды, использование && будет таким же.... А в случае с запросом, если вы запускаете программу типа демона "никогда не останавливаться", она не будет завершена, и вам не нужно && или ждать

0
27.01.2020, 20:55

Теги

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