<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>34862</bug_id>
          
          <creation_ts>2018-04-27 23:13:32 +0300</creation_ts>
          <short_desc>alterator-services не изменяет Start-Kill</short_desc>
          <delta_ts>2018-09-12 18:10:07 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>alterator-service-functions</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>33000</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Speccyfighter">zxwarior</reporter>
          <assigned_to name="manowar@altlinux.org">manowar</assigned_to>
          <cc>antohami</cc>
    
    <cc>bga</cc>
    
    <cc>manowar</cc>
    
    <cc>mike</cc>
    
    <cc>sem</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170712</commentid>
    <comment_count>0</comment_count>
    <who name="Speccyfighter">zxwarior</who>
    <bug_when>2018-04-27 23:13:32 +0300</bug_when>
    <thetext>Текущее:

# chkconfig --list ntpd
ntpd            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл

# ls -lR /etc/rc.d/rc*.d/*ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc0.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc1.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 17  2017 /etc/rc.d/rc2.d/S90ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 17  2017 /etc/rc.d/rc3.d/S90ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 17  2017 /etc/rc.d/rc4.d/S90ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 17  2017 /etc/rc.d/rc5.d/S90ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc6.d/K60ntpd -&gt; ../init.d/ntpd

# /etc/rc.d/init.d/ntpd status
ntpd is running


Модуль альтератора services
Выбрано:
- Остановить
- Запускать при загрузке системы (маркер снят)
Применить.

Применение останавливает сервис

# /etc/rc.d/init.d/ntpd status
ntpd is stopped

но не выключает его

# chkconfig --list ntpd
ntpd            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл

# ls -lR /etc/rc.d/rc*.d/*ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc0.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc1.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 17  2017 /etc/rc.d/rc2.d/S90ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 17  2017 /etc/rc.d/rc3.d/S90ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 17  2017 /etc/rc.d/rc4.d/S90ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 17  2017 /etc/rc.d/rc5.d/S90ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc6.d/K60ntpd -&gt; ../init.d/ntpd


Если сервис остановлен и выключен

# chkconfig ntpd off

# ls -lR /etc/rc.d/rc*.d/*ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc0.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc1.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 апр 27 22:53 /etc/rc.d/rc2.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 апр 27 22:53 /etc/rc.d/rc3.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 апр 27 22:53 /etc/rc.d/rc4.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 апр 27 22:53 /etc/rc.d/rc5.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc6.d/K60ntpd -&gt; ../init.d/ntpd

# /etc/rc.d/init.d/ntpd status
ntpd is stopped


то 
- Запустить
- Запускать при загрузке системы (маркер установлен)

запустит сервис

# /etc/rc.d/init.d/ntpd status
ntpd is running

но не включит его

# chkconfig --list ntpd
ntpd            0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл

# ls -lR /etc/rc.d/rc*.d/*ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc0.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc1.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 апр 27 22:53 /etc/rc.d/rc2.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 апр 27 22:53 /etc/rc.d/rc3.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 апр 27 22:53 /etc/rc.d/rc4.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 апр 27 22:53 /etc/rc.d/rc5.d/K60ntpd -&gt; ../init.d/ntpd
lrwxrwxrwx 1 root root 14 май 22  2016 /etc/rc.d/rc6.d/K60ntpd -&gt; ../init.d/ntpd

Тема из 3-рёх сообщений на форуме:
https://forum.altlinux.org/index.php?topic=41514.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173990</commentid>
    <comment_count>1</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2018-09-09 17:04:37 +0300</bug_when>
    <thetext>Надо вникнуть вот в этот участок кода:
http://git.altlinux.org/people/manowar/packages/?p=alterator-service-functions.git;a=blob_plain;f=alterator-service-functions/alterator-service-functions;hb=9a9428ba5bff0b578496bb21921f00840f829e68

        enable)            
            case &quot;$*&quot; in
                *:prefer-socket:*)
                    # We are asked to enable the service for
                    # the socket activation only, if possible.
                    if sd_service_exists &quot;$name.service&quot; &amp;&amp; \
                            sd_service_exists &quot;$name.socket&quot;
                    then
                        sd_service_control &quot;$name.service&quot; disable &amp;&amp; \
                            sd_service_control &quot;$name.socket&quot; enable || \
                                return $?

                        # However, always enable the SysV service.
                        if sd_sysv_avail &amp;&amp; \
                                sysv_service_script_exists &quot;$name&quot;
                        then
                            sysv_service_control &quot;$name&quot; enable
                        fi
                    else
                        _service_control &quot;$name&quot; enable
                    fi
                    ;;
                *:prefer-service:*|*:prefer-main:*)
                    # We are asked to enable the main service
                    # unit only, if possible.
                    if sd_service_exists &quot;$name.service&quot; &amp;&amp; \
                            sd_service_exists &quot;$name.socket&quot;
                    then
                        sd_service_control &quot;$name.service&quot; enable || \
                            return $?
                        if ! _service_control &quot;$name.service&quot; is-indirect; then
                            # Disable the socket part only if the main
                            # service isn&apos;t indirect. Otherwise
                            # the main service would be completely
                            # disabled with systemd.
                            sd_service_control &quot;$name.socket&quot; disable
                        fi
                    else
                        _service_control &quot;$name&quot; enable
                    fi
                    ;;
                *:all:*|*:also-socket:*)
                    # We are asked to also enable the socket
                    # unit, if exists.
                    _service_control &quot;$name&quot; enable || return $?
                    if sd_service_exists &quot;$name.socket&quot;; then
                        sd_service_control &quot;$name.socket&quot; enable
                    fi
                    ;;
                *)
                    _service_control &quot;$name&quot; enable
                    ;;
            esac
            ;;
        is-enabled)
            # If the SysV native service exists and is disabled
            # report false.
            if sd_sysv_avail &amp;&amp; \
                    sysv_service_script_exists &quot;$name&quot;
            then
                sysv_service_control &quot;$name&quot; is-enabled || return $?
            fi

            # If the socket unit is enabled -- it&apos;s considered
            # enough.
            sd_service_exists &quot;$name.socket&quot; &amp;&amp; \
              sd_service_control &quot;$name.socket&quot; is-enabled &amp;&amp; \
                return 0

            _service_control &quot;$name&quot; is-enabled
            ;;
        disable)
            # Completely disable the service by turning off
            # its socket unit along with the main service.
            _service_control &quot;$name&quot; disable || return $?
            if sd_service_exists &quot;$name.socket&quot;; then
                sd_service_control &quot;$name.socket&quot; disable
            fi
            ;;
	    *)
		    _service_control &quot;$name&quot; &quot;$cmd&quot;
		    ;;

Перевешиваю на alterator-service-functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173998</commentid>
    <comment_count>2</comment_count>
      <attachid>7752</attachid>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2018-09-10 05:21:49 +0300</bug_when>
    <thetext>Created attachment 7752
Fix for sysV systems

Функция _service_control не отрабатывает на sysV как надо, так как проверяется наличие в системе только systemctl, а он есть во всех системах на sysV! Нужно проверять также ещё и наличие /lib/systemd/systemd-sysv-install</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174007</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-09-10 12:04:32 +0300</bug_when>
    <thetext>Насколько понимаю, теперь модно проверять по коду возврата /sbin/sd_booted
(входит в пакет service с версии 0.5.24-alt1 2013 г.в.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174011</commentid>
    <comment_count>4</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2018-09-10 12:12:45 +0300</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; Насколько понимаю, теперь модно проверять по коду возврата /sbin/sd_booted
&gt; (входит в пакет service с версии 0.5.24-alt1 2013 г.в.).

Я даже больше скажу: этот самый SD_BOOTED уже во-всю используется в alterator-service-functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174014</commentid>
    <comment_count>5</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2018-09-10 13:29:31 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; (В ответ на комментарий №3)
&gt; &gt; Насколько понимаю, теперь модно проверять по коду возврата /sbin/sd_booted
&gt; &gt; (входит в пакет service с версии 0.5.24-alt1 2013 г.в.).
&gt; 
&gt; Я даже больше скажу: этот самый SD_BOOTED уже во-всю используется в
&gt; alterator-service-functions.

Я его видел, но не понял, что это такое. Переделать патч или так сгодится? Тестовое задание 212785 с ним готово и протестировано. Или сами исправите?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174015</commentid>
    <comment_count>6</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2018-09-10 14:11:57 +0300</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; (В ответ на комментарий №4)
&gt; &gt; (В ответ на комментарий №3)
&gt; &gt; &gt; Насколько понимаю, теперь модно проверять по коду возврата /sbin/sd_booted
&gt; &gt; &gt; (входит в пакет service с версии 0.5.24-alt1 2013 г.в.).
&gt; &gt; 
&gt; &gt; Я даже больше скажу: этот самый SD_BOOTED уже во-всю используется в
&gt; &gt; alterator-service-functions.
&gt; 
&gt; Я его видел, но не понял, что это такое. Переделать патч или так сгодится?
&gt; Тестовое задание 212785 с ним готово и протестировано. Или сами исправите?

  Исправьте на sd_booted и проверьте, пожалуйста, раз у вас всё настроено для тестирования.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174017</commentid>
    <comment_count>7</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-09-10 16:09:08 +0300</bug_when>
    <thetext>alterator-service-functions-3.0.0-alt4 -&gt; sisyphus:

Mon Sep 10 2018 Anton Midyukov &lt;antohami@altlinux&gt; 3.0.0-alt4
- Fixed for SysV systems (Closes: 34862)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174065</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-09-12 18:01:47 +0300</bug_when>
    <thetext>Спасибо!  Отправишь в p8?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174066</commentid>
    <comment_count>9</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2018-09-12 18:10:07 +0300</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; Спасибо!  Отправишь в p8?

task 212829</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7752</attachid>
            <date>2018-09-10 05:21:49 +0300</date>
            <delta_ts>2018-09-10 05:21:49 +0300</delta_ts>
            <desc>Fix for sysV systems</desc>
            <filename>0001-Fix-for-sysV-systems.patch</filename>
            <type>text/plain</type>
            <size>952</size>
            <attacher name="Антон Мидюков">antohami</attacher>
            
              <data encoding="base64">RnJvbSBkZjkyYzY1Y2RlYmFmMDViMmMxZWEwYzliNzBhODhiOGZiZTUyNmQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbiBNaWR5dWtvdiA8YW50b2hhbWlAYWx0bGludXgub3Jn
PgpEYXRlOiBNb24sIDEwIFNlcCAyMDE4IDA5OjE3OjQ5ICswNzAwClN1YmplY3Q6IFtQQVRDSF0g
Rml4IGZvciBzeXNWIHN5c3RlbXMKCi0tLQogYWx0ZXJhdG9yLXNlcnZpY2UtZnVuY3Rpb25zL2Fs
dGVyYXRvci1zZXJ2aWNlLWZ1bmN0aW9ucyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy
dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2FsdGVyYXRvci1zZXJ2aWNlLWZ1
bmN0aW9ucy9hbHRlcmF0b3Itc2VydmljZS1mdW5jdGlvbnMgYi9hbHRlcmF0b3Itc2VydmljZS1m
dW5jdGlvbnMvYWx0ZXJhdG9yLXNlcnZpY2UtZnVuY3Rpb25zCmluZGV4IGY0OWRjOTYuLmFkNWJi
OWYgMTAwNjQ0Ci0tLSBhL2FsdGVyYXRvci1zZXJ2aWNlLWZ1bmN0aW9ucy9hbHRlcmF0b3Itc2Vy
dmljZS1mdW5jdGlvbnMKKysrIGIvYWx0ZXJhdG9yLXNlcnZpY2UtZnVuY3Rpb25zL2FsdGVyYXRv
ci1zZXJ2aWNlLWZ1bmN0aW9ucwpAQCAtMjg0LDcgKzI4NCw3IEBAIF9zZXJ2aWNlX2NvbnRyb2wo
KQogewogICAgICMgUHJlZmVyIHN5c3RlbWN0bCBvdmVyIFN5c1YgaWYgaXQgaXMgYXZhaWxhYmxl
IHJlbHlpbmcKICAgICAjIG9uIGl0cyBzeXN0ZW1kLXN5c3YtaW5zdGFsbCBzY3JpcHQgZm9yIFN5
c1Ygc2VydmljZXMuCi0gICAgaWYgc2RfYXZhaWw7IHRoZW4KKyAgICBpZiBzZF9hdmFpbCAmJiBz
ZF9zeXN2X2F2YWlsOyB0aGVuCiAgICAgICAgIHNkX3NlcnZpY2VfY29udHJvbCAiJDEiICIkMiIK
IAllbGlmIHN5c3Zfc2VydmljZV9zY3JpcHRfZXhpc3RzICIkMSI7IHRoZW4KICAgICAgICAgc3lz
dl9zZXJ2aWNlX2NvbnRyb2wgIiQxIiAiJDIiCi0tIAoyLjE3LjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>