|
|
d115b2 |
From a91b4d79c1890d19e0deff0a9e33dde5c45bdd9d Mon Sep 17 00:00:00 2001
|
|
|
d115b2 |
From: Lukas Nykryn <lnykryn@redhat.com>
|
|
|
d115b2 |
Date: Wed, 29 Apr 2015 14:41:00 +0200
|
|
|
d115b2 |
Subject: [PATCH 6/6] chkconfig: don't create symlinks if they already exist
|
|
|
d115b2 |
|
|
|
d115b2 |
---
|
|
|
d115b2 |
chkconfig.c | 12 +++++++++---
|
|
|
d115b2 |
1 file changed, 9 insertions(+), 3 deletions(-)
|
|
|
d115b2 |
|
|
|
d115b2 |
diff --git a/chkconfig.c b/chkconfig.c
|
|
|
d115b2 |
index 596ef8f..d334bf2 100644
|
|
|
d115b2 |
--- a/chkconfig.c
|
|
|
d115b2 |
+++ b/chkconfig.c
|
|
|
d115b2 |
@@ -239,10 +239,16 @@ static int frobOneDependencies(struct service *s, struct service *servs, int num
|
|
|
d115b2 |
|
|
|
d115b2 |
if (target || ((s0 != s->sPriority) || (k0 != s->kPriority))) {
|
|
|
d115b2 |
for (i = 0; i < 7; i++) {
|
|
|
d115b2 |
- if (isConfigured(s->name, i, NULL, NULL)) {
|
|
|
d115b2 |
+ int priority;
|
|
|
d115b2 |
+ char type;
|
|
|
d115b2 |
+ if (isConfigured(s->name, i, &priority, &type)) {
|
|
|
d115b2 |
int on = isOn(s->name, i);
|
|
|
d115b2 |
- delService(s->name, TYPE_INIT_D, i);
|
|
|
d115b2 |
- doSetService(*s, i, on);
|
|
|
d115b2 |
+ int new_priority = on ? s->sPriority : s->kPriority;
|
|
|
d115b2 |
+
|
|
|
d115b2 |
+ if (new_priority != priority || (on ? 'S' : 'K') != type) {
|
|
|
d115b2 |
+ delService(s->name, TYPE_INIT_D, i);
|
|
|
d115b2 |
+ doSetService(*s, i, on);
|
|
|
d115b2 |
+ }
|
|
|
d115b2 |
} else if (target) {
|
|
|
d115b2 |
delService(s->name, TYPE_INIT_D, i);
|
|
|
d115b2 |
doSetService(*s, i, ((1<<i) & s->levels));
|
|
|
d115b2 |
--
|
|
|
d115b2 |
1.8.3.1
|
|
|
d115b2 |
|