Перезапустить службу после транзакции RPM

команда:top -b -n1| sed -n '/PID/,$p'

выход

ux_example ~]# top -b -n1| sed -n '/PID/,$p'
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
     7 root      RT   0     0    0    0 S  1.7  0.0   0:01.04 migration/1
     1 root      20   0 19356 1564 1252 S  0.0  0.1   0:07.96 init
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.07 kthreadd
     3 root      RT   0     0    0    0 S  0.0  0.0   0:03.46 migration/0
     4 root      20   0     0    0    0 S  0.0  0.0   0:01.84 ksoftirqd/0
     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
     6 root      RT   0     0    0    0 S  0.0  0.0   1:58.23 watchdog/0
     8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1
     9 root      20   0     0    0    0 S  0.0  0.0   0:02.87 ksoftirqd/1
    10 root      RT   0     0    0    0 S  0.0  0.0   2:10.65 watchdog/1
    11 root      RT   0     0    0    0 S  0.0  0.0   0:02.42 migration/2
    12 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/2
    13 root      20   0     0    0    0 S  0.0  0.0   0:01.27 ksoftirqd/2
    14 root      RT   0     0    0    0 S  0.0  0.0   1:55.75 watchdog/2
    15 root      RT   0     0    0    0 S  0.0  0.0   0:01.03 migration/3
    16 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/3
    17 root      20   0     0    0    0 S  0.0  0.0   0:00.95 ksoftirqd/3
    18 root      RT   0     0    0    0 S  0.0  0.0   1:58.07 watchdog/3
    19 root      20   0     0    0    0 S  0.0  0.0   0:14.40 events/0
    20 root      20   0     0    0    0 S  0.0  0.0   3:52.96 events/1
    21 root      20   0     0    0    0 S  0.0  0.0   0:16.77 events/2
    22 root      20   0     0    0    0 S  0.0  0.0   1:34.48 events/3
    23 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup
    24 root      20   0     0    0    0 S  0.0  0.0   0:00.01 khelper
    25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
    26 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr
    27 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm
    28 root      20   0     0    0    0 S  0.0  0.0   0:07.44 sync_supers
    29 root      20   0     0    0    0 S  0.0  0.0   0:03.43 bdi-default
    30 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0
    31 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/1
    32 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/2
    33 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/3
    34 root      20   0     0    0    0 S  0.0  0.0   0:02.02 kblockd/0
    35 root      20   0     0    0    0 S  0.0  0.0   0:01.02 kblockd/1
    36 root      20   0     0    0    0 S  0.0  0.0   0:07.83 kblockd/2
    37 root      20   0     0    0    0 S  0.0  0.0   0:22.51 kblockd/3
38 root      20   0     0    0    0 S  0.0  0.0   0:
0
08.02.2021, 13:18
1 ответ
  1. serviceможет использовать systemctl, когда он доступен. Он напечатает уведомление о перенаправлении на /bin/systemctl, и вы можете спокойно его игнорировать. Поэтому вы можете использовать:

    %posttrans
    service rsyslog restart
    

Обратите внимание, что правильный порядок отличается от того, который вы использовали в своем вопросе.

  1. Или вы можете использовать макрос %rhel.

    %posttrans
    %if 0%{rhel} >=7
       systemctl restart rsyslog
    %else
       service rsyslog restart
    %endif
    

Но это оценивается во время сборки. Таким образом, у вас должен быть один бинарный пакет для EL6 и второй для EL7+.

1
18.03.2021, 22:31

Теги

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