Как начать Weblogic Service с использованием Sudo с другим пользователем?

Значение "total" в верхней части листинга ls -l - это сумма блоков, используемых всеми элементами в этом листинге. Вы можете получить количество блоков для каждого отдельного элемента, добавив флаг -s.

Кое-что о количестве блоков и "total":

  1. ls не сообщает количество блоков, используя размер блока файловой системы (который обычно составляет 4096 байт), а в единицах 1024 или 512 байт в зависимости от версии (и флагов, а иногда и переменных окружения). Вот почему на большинстве современных систем количество блоков, сообщаемое ls, всегда кратно 4.

  2. Размер каталога не является рекурсивной суммой размеров вещей, содержащихся в нем.

     mkdir a
     mkdir a/b
     head -9999999999c /dev/urandom > a/b/foo
    

    Что покажет ls -l a? Он покажет b, который является каталогом. Каков размер b? Довольно маленький, вероятно, 4 блока (1 реальный блок файловой системы) Каталог - это не tarball; он физически не содержит файлы, находящиеся в нем. Это только список имен файлов и номеров inode. Так, список для a включает только b, что мало, и "итог" для этого списка также мал. ls -l a/b покажет foo, который большой, и "итог" будет большим.

  3. Поскольку total - это сумма отображаемых элементов, опции ls, изменяющие отображаемое, изменяют и total.

    mv a/b/foo a/b/.foo
    ls -l a/b
    

    Поскольку .foo начинается с точки, он больше не включен в список каталогов. Таким образом, "итого" теперь 0, для каталога с огромным файлом в нем! Добавьте флаг -a, и .foo появится, а "итого" снова станет большим. На самом деле, "итого" больше, чем количество блоков для .foo, потому что оно также включает количество блоков для . (a/b) и ... (a). Флаг -A приятнее (опустите . и ... , но включать все остальные дотфайлы).

  4. Количество блоков не полностью предсказуемо по размерам файлов, потому что разные файловые системы имеют разные размеры блоков (поэтому файл, содержащий 1 байт, будет считаться занимающим 1 блок в файловой системе с 1024-байтными блоками и 4 блока в файловой системе с 4096-байтными блоками), а также потому, что подсчет включает накладные расходы файловой системы (косвенные блоки, в которых хранится основной список блоков), и потому, что существуют разреженные файлы - большой кусок нулей в файле может (но не всегда будет) храниться эффективным образом, не занимая дополнительных блоков.

0
06.02.2019, 12:00
2 ответа

Думаю, вы настроили файл sudoers как таковой:

test ALL=(weblogic) NOPASSWD: /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh

Это позволит пользователю testзапускать команду от имени пользователя weblogic, без необходимости вводить пароль. (Если вы этого не хотите, удалите NOPASSWD:.

Кроме того, поскольку вы собираетесь запускать Weblogic в фоновом режиме, было бы неплохо настроить его на использование функции автоматического -входа в систему с помощью boot.properties, чтобы он не запрашивал пользователя/пароль. Поместите файл с именем boot.propertiesв /u01/Oracle/Middleware/user_projects/domains/base_domain/servers/your_server_name/security(, при необходимости создайте каталог безопасности )со следующим содержимым:

username=your_weblogic_username
password=your_weblogic_password

Затем войдите как testи запуститеsudo -u weblogic nohup /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh &

И вы получите:

root      3133  0.0  0.1  37084  6208 pts/1    S    17:47   0:00 sudo -u weblogic nohup /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh
weblogic  3134  0.0  0.0   7112  2912 pts/1    S    17:47   0:00  \_ /bin/sh /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh
weblogic  3135  0.0  0.0   7252  3508 pts/1    S    17:47   0:00      \_ /bin/sh /u01/Oracle/Middleware/user_projects/domains/base_domain/bin/startWebLogic.sh
weblogic  3168  2.8 10.8 2606220 437004 pts/1  Sl   17:47   0:15          \_ /home/weblogic/jdk/bin/java -server -Xms256m -Xmx512m -Dweblogic.Name=AdminServer -Djava.security.policy=/u01/Oracle/wlserver/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/u01/Oracle/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/u01/Oracle/Middleware/wlserver/server -Dweblogic.home=/u01/Oracle/Middleware/wlserver/server weblogic.Server
1
28.01.2020, 02:30

попробуй:

su -p -s /bin/sh weblogic -c "nohup /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh &"

Обратите внимание на «-c» перед командой в кавычках.

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

1
28.01.2020, 02:30

Теги

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