/[smeserver]/rpms/e-smith-base/sme10/e-smith-base-5.8.0-movese_services_to_systemd.patch
ViewVC logotype

Contents of /rpms/e-smith-base/sme10/e-smith-base-5.8.0-movese_services_to_systemd.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Sun Jun 6 20:38:50 2021 UTC (3 years, 4 months ago) by jpp
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +0 -0 lines
FILE REMOVED
5.8.1

1 diff -Nur e-smith-base-5.8.0.old/createlinks e-smith-base-5.8.0/createlinks
2 --- e-smith-base-5.8.0.old/createlinks 2016-04-11 22:14:33.297000000 -0400
3 +++ e-smith-base-5.8.0/createlinks 2016-04-11 22:47:13.131000000 -0400
4 @@ -375,6 +375,7 @@
5
6 $event = "post-install";
7
8 +event_link("fix-startup", $event, "05");
9 event_link("rotate_timestamped_logfiles", $event, "05");
10 event_link("init-accounts", $event, "05");
11 event_link("init-passwords", $event, "10");
12 @@ -388,6 +389,7 @@
13
14 $event = "post-upgrade";
15
16 +event_link("fix-startup", $event, "05");
17 event_link("rotate_timestamped_logfiles", $event, "05");
18 event_link("init-accounts", $event, "05");
19 event_link("conf-startup", $event, "10");
20 @@ -538,15 +540,8 @@
21 my %service2order =
22 (
23 # Start rsyslog up before network!
24 - rsyslog => "05",
25 - #klogd => "06",
26 - 'bootstrap-console' => "10",
27 raidmonitor => "15",
28 network => "37",
29 - irqbalance => "39",
30 - crond => "40",
31 - smartd => "40",
32 - acpid => "44",
33 dhcpd => "65",
34 'local' => "99",
35 );
36 @@ -581,3 +576,10 @@
37
38 # no template headers for /etc/pam_ldap.secret
39 safe_touch("root/etc/e-smith/templates/etc/pam_ldap.secret/template-begin");
40 +
41 +
42 +system('mkdir -p root/usr/lib/systemd/system/multi-user.target.wants/');
43 + unlink "root/usr/lib/systemd/system/multi-user.target.wants/bootstrap-console.service";
44 +symlink("/usr/lib/systemd/system/bootstrap-console.service",
45 + "root/usr/lib/systemd/system/multi-user.target.wants/bootstrap-console.service")
46 + or die "Can't symlink to root/usr/lib/systemd/system/multi-user.target.wants/bootstrap-console.service: $!";
47 diff -Nur e-smith-base-5.8.0.old/root/etc/e-smith/events/actions/fix-startup e-smith-base-5.8.0/root/etc/e-smith/events/actions/fix-startup
48 --- e-smith-base-5.8.0.old/root/etc/e-smith/events/actions/fix-startup 1969-12-31 19:00:00.000000000 -0500
49 +++ e-smith-base-5.8.0/root/etc/e-smith/events/actions/fix-startup 2016-04-11 22:48:23.867000000 -0400
50 @@ -0,0 +1,42 @@
51 +#! /usr/bin/perl
52 +
53 +use strict;
54 +use warnings;
55 +use DirHandle;
56 +my $d = DirHandle->new("/etc/rc7.d");
57 +
58 +my @d =
59 + sort { $a->{order} cmp $b->{order} }
60 + map { /^S(\d+)([\w\-.]+)/ ; { name => $2 , order => $1 } }
61 + grep { /^S/ } $d->read;
62 +
63 +my $equivalent = {'oidentd'=> 'identd',
64 + 'nut'=> 'ups',
65 + 'raidmonitor' => 'mdmonitor'
66 + };
67 +
68 +
69 +foreach my $service (@d)
70 +{
71 +my $sv=$service->{'name'};
72 +next if $sv eq 'bootstrap-console';
73 +$sv= $equivalent->{$sv} || $sv;
74 +#print "$sv: ";
75 + if (-e "/lib/systemd/system/multi-user.target.wants/$sv.service")
76 + {
77 + #print "systemd (lib) ";
78 + system(qw(systemctl disable), $sv);
79 + }
80 + elsif (-e "/etc/systemd/system/multi-user.target.wants/$sv.service")
81 + {
82 + #print "systemd (etc)";
83 + system(qw(systemctl disable), $sv);
84 + }
85 + elsif (-e "/etc/init.d/$sv")
86 + {
87 + #print "chkconfig $sv off ";
88 + system("chkconfig", $sv, "off");
89 + #print "\n";
90 + }
91 + #else {print "\n";}
92 +}
93 diff -Nur e-smith-base-5.8.0.old/root/sbin/e-smith/bootstrap-console e-smith-base-5.8.0/root/sbin/e-smith/bootstrap-console
94 --- e-smith-base-5.8.0.old/root/sbin/e-smith/bootstrap-console 2014-03-23 22:47:25.000000000 -0400
95 +++ e-smith-base-5.8.0/root/sbin/e-smith/bootstrap-console 2016-04-11 22:42:48.072000000 -0400
96 @@ -48,6 +48,11 @@
97 use esmith::console::save_config;
98 esmith::console::save_config->new->doit($console, $db);
99
100 +$ARGV[0] = 'tty';
101 +$console = esmith::console->new();
102 +use esmith::console::startup;
103 +esmith::console::startup->new->doit($console,$db);
104 +
105 system("/usr/bin/tput", "clear");
106 exit (0);
107
108 diff -Nur e-smith-base-5.8.0.old/root/usr/lib/systemd/system/bootstrap-console.service e-smith-base-5.8.0/root/usr/lib/systemd/system/boostrap-console.service
109 --- e-smith-base-5.8.0.old/root/usr/lib/systemd/system/bootstrap-console.service 1969-12-31 19:00:00.000000000 -0500
110 +++ e-smith-base-5.8.0/root/usr/lib/systemd/system/bootstrap-console.service 2016-04-11 22:23:50.332000000 -0400
111 @@ -0,0 +1,27 @@
112 +[Unit]
113 +Description=SME server bootstrap-console
114 +DefaultDependencies=no
115 +Conflicts=shutdown.target
116 +After=livesys.service plymouth-quit-wait.service
117 +After=systemd-vconsole-setup.service
118 +Before=getty@tty1.service
119 +Before=shutdown.target
120 +
121 +[Service]
122 +Environment=HOME=/root
123 +WorkingDirectory=/root
124 +ExecStartPre=-/bin/plymouth quit
125 +ExecStart=/sbin/e-smith/bootstrap-console
126 +Type=oneshot
127 +Restart=no
128 +TimeoutSec=0
129 +StandardInput=tty
130 +StandardOutput=tty
131 +StandardError=tty
132 +KillMode=process
133 +IgnoreSIGPIPE=no
134 +SendSIGHUP=yes
135 +
136 +[Install]
137 +WantedBy=multi-user.target
138 +
139 diff -Nur e-smith-base-5.8.0.old/root/usr/share/perl5/vendor_perl/esmith/console/startup.pm e-smith-base-5.8.0/root/usr/share/perl5/vendor_perl/esmith/console/startup.pm
140 --- e-smith-base-5.8.0.old/root/usr/share/perl5/vendor_perl/esmith/console/startup.pm 1969-12-31 19:00:00.000000000 -0500
141 +++ e-smith-base-5.8.0/root/usr/share/perl5/vendor_perl/esmith/console/startup.pm 2016-04-11 22:36:08.133000000 -0400
142 @@ -0,0 +1,132 @@
143 +package esmith::console::startup;
144 +use Locale::gettext;
145 +use esmith::console;
146 +use esmith::ConfigDB;
147 +use strict;
148 +use warnings;
149 +
150 +sub new
151 +{
152 + my $class = shift;
153 + my $self = {
154 + @_,
155 + };
156 + bless $self, $class;
157 + return $self;
158 +}
159 +
160 +sub startup_callback {
161 + my $fd = shift;
162 + my @out = ();
163 + my $done = 0;
164 +
165 + use DirHandle;
166 + my $d = DirHandle->new("/etc/rc7.d");
167 + my @services = sort
168 + {
169 + $a =~ /^S(\d+)/; my $A = $1;
170 + $b =~ /^S(\d+)/; my $B = $1;
171 + $A <=> $B
172 + } grep { /^S/ } $d->read;
173 + my $rows = 12;
174 + my $status_col = 65;
175 +
176 + my $db = esmith::ConfigDB->open_ro;
177 + my $rec = $db->get('smb');
178 + my $i=0;
179 + foreach (@services) {
180 + $i=$i+1;
181 + next unless /^S(\d+)([^\.][\.\w\-]+)$/;
182 + next unless $2 eq "smb";
183 + splice @services,$i-1 , 1, "S${1}4smbd", "S${1}5nmbd" unless ($rec and $rec->prop('status') eq 'disabled');
184 + last;
185 + }
186 +
187 +
188 + open(STDOUT, ">&STDERR");
189 + foreach (@services)
190 + {
191 + sleep 1;
192 + my $percent = int(($done * 100) / ($#services + 1));
193 + $done += 1;
194 + my $link = $_;
195 + #warn "Looking at symlink $_\n";
196 + next unless /^S\d+([^\.][\.\w\-]+)$/; # Untaint service name
197 + my $service = $1;
198 + #my $db = esmith::ConfigDB->open_ro;
199 + $rec = $db->get($service);
200 + do
201 + {
202 + warn "not starting disabled service $service\n";
203 + next;
204 + } unless ($rec and $rec->prop('status') eq 'enabled');
205 + my $prompt = "starting ";
206 + my $supervised = -x "/service/$service/run";
207 + my @cmd;
208 + if (-x "/service/$service/run")
209 + {
210 + $prompt .= " supervised service $service";
211 + warn "starting supervised service $service\n";
212 + @cmd = ("sv", "up", "/service/$service");
213 + }
214 + elsif (-x "/etc/init.d/$service")
215 + {
216 + $prompt .= " unsupervised service $service";
217 + warn "starting unsupervised service $service\n";
218 + @cmd = ("/etc/init.d/$service", "start");
219 + }
220 + else
221 + {
222 + warn "ignoring unknown service $service: bogus start symlink $link\n";
223 + next;
224 + }
225 +
226 + push @out, "$prompt\n";
227 + print $fd "XXX\n";
228 + print $fd "$percent\n";
229 + my @show = $#out > $rows ? @out[$#out - $rows .. $#out] : @out;
230 + do { print $fd $_ } foreach @show;
231 + print $fd "XXX\n";
232 + $prompt .= " " x ($status_col - length($prompt));
233 + $prompt .= system(@cmd) ? "\\Z1FAILED\\Zn" : "\\Z2OK\\Zn";
234 + $out[-1] = "$prompt\n";
235 + @show = $#out > $rows ? @out[$#out - $rows .. $#out] : @out;
236 + print $fd "XXX\n";
237 + print $fd "$percent\n";
238 + do { print $fd $_ } foreach @show;
239 + print $fd "XXX\n";
240 + }
241 + print $fd "100\n";
242 + sleep 2;
243 + return undef;
244 +};
245 +
246 +my $console = esmith::console->new;
247 +
248 +sub doit
249 +{
250 + my ($self, $console, $db) = @_;
251 +
252 + $console->infobox
253 + (
254 + title => gettext("Starting system services"),
255 + text => "\n" .
256 + gettext("Please standby while system services are started ..."
257 +),
258 + );
259 +
260 + system(qw(touch /var/lock/subsys/backup-running));
261 + system(qw(chown admin /var/lock/subsys/backup-running));
262 + sleep(6); # Wait to be certain that all runsv services have been started.
263 + $console->gauge(\&startup_callback,
264 + text => '',
265 + title => 'Starting system services',
266 + colors => 1,
267 + no_collapse => 1);
268 +}
269 +
270 +#use esmith::console;
271 +#use esmith::ConfigDB;
272 +#esmith::console::startup->new->doit(esmith::console->new(),
273 +# esmith::ConfigDB->open);
274 +1;

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed