Jump to content

How I Converted My Arch to 100% Systemd or...


V.T. Eric Layton

Recommended Posts

  • 3 weeks later...
V.T. Eric Layton

So, you wanna' go to systemd, huh Josh?

 

Well, read this thread to see how it's done.

 

Have fun! :)

Link to comment
Share on other sites

securitybreach

So, you wanna' go to systemd, huh Josh?

 

Well, read this thread to see how it's done.

 

Have fun! :)

 

Well I see this as a coming issue so I may as well jump through the hoops before being forced to.

Link to comment
Share on other sites

securitybreach

Well almost everything seemed to work fine except:

  • the time was off but I think I fixed it (openntpd.service) and then I had to run ntp -s to update the time as it was off by more than 180 minutes
  • I am having an issue getting netcfg to automatically connect upon bootup but it works with "netcfg mynetwork"
  • lastly I am not able to display some characters correctly:

ââ comhack@Cerberus 01:08 PM

ââââ ~->

 

instead of:

╔═ comhack@Cerberus 01:13 PM

╚═══ ~/

 

I also had to manually start my daemons:

# systemctl start dbus.service

 

and to autostart:

# systemctl enable dbus.service

 

This was a bit of a pain as I had to do it for about 14 daemons.

Link to comment
Share on other sites

securitybreach

Also, these are two services that are failing on startup but I have no clue on how to fix them:

 root@Cerberus comhack]# systemctl --failed
UNIT                      LOAD   ACTIVE SUB    JOB DESCRIPTION
netcfg@multi-user.service loaded failed failed     Netcfg networking service for profile multi-user
pgl-update.service        loaded failed failed     Update PeerGuardian Linux blocklists

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
JOB    = Pending job for the unit.

2 units listed. Pass --all to see inactive units, too.

Link to comment
Share on other sites

securitybreach

I guess those are not the only issues:

[root@Cerberus comhack]# systemctl -a
UNIT                                                                                       LOAD   ACTIVE   SUB       JOB DESCRIPTION
auditd.service                                                                             error  inactive dead          auditd.service
display-manager.service                                                                    error  inactive dead          display-manager.service
netcfg@multi-user.service                                                                  loaded failed   failed        Netcfg networking service for profile multi-user
pgl-update.service                                                                         loaded failed   failed        Update PeerGuardian Linux blocklists
plymouth-quit-wait.service                                                                 error  inactive dead          plymouth-quit-wait.service
plymouth-start.service                                                                     error  inactive dead          plymouth-start.service
syslog.service                                                                             error  inactive dead          syslog.service

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
JOB    = Pending job for the unit.

171 units listed.

 

I removed the ones that started fine but here is the whole list if you want to look at it: http://pastebin.com/1TjwiXp4

 

I do not use a display manager so maybe I can just remove that one and I am not for sure about the plymouth ones so I will have do some reading.

Link to comment
Share on other sites

V.T. Eric Layton

Well, you're making progress.

 

About the improper display of some characters... I read about that somewhere when I was upgrading to systemd. Can't remember the remedy at the moment, though.

 

Also, did you create the /etc/adjtime file that I mention above to correct the time errors?

Link to comment
Share on other sites

V.T. Eric Layton

Oh, and are you booting an initrd? If so, did you remember to make a new one after converting to systemd?

Link to comment
Share on other sites

securitybreach

Well the weird characters fixed themselves automatically?

╔═ comhack@Cerberus 08:50 AM
╚═══ ~/

 

I also fixed the pgl issue as it seemed the pgl-update.service automatically starts with the pgl.service. I am still getting the netcfg error though:

╔═ comhack@Cerberus 08:50 AM
╚═══ ~->su
Password:
[root@Cerberus comhack]# systemctl --failed
UNIT					  LOAD   ACTIVE SUB	JOB DESCRIPTION
netcfg@multi-user.service loaded failed failed	 Netcfg networking service for profile multi-user

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB	= The low-level unit activation state, values depend on unit type.
JOB	= Pending job for the unit.

1 units listed. Pass --all to see inactive units, too.

Link to comment
Share on other sites

securitybreach

Also, did you create the /etc/adjtime file that I mention above to correct the time errors?

 

No I did not.

 

 

Oh, and are you booting an initrd? If so, did you remember to make a new one after converting to systemd?

 

I did not rebuild my initrd but I did do that when the update initially came through.

Link to comment
Share on other sites

securitybreach

Also, did you create the /etc/adjtime file that I mention above to correct the time errors?

That fixed the time issue.

 

Thanks :thumbup:

 

I still do not know why display-manager.service tries to start as I do not use a display manager and I removed both kdm.service and gdm.service in case they were trying to start. Whenever I try to disable display-manager.service, it complains that it does not exist. I checked /usr/lib/systemd/system/ and it is not found. So why does it show up as an error when you list all of the services: systemctl --all:

 

[root@Cerberus comhack]# systemctl --all | grep display-manager
display-manager.service   error  inactive dead		  display-manager.service

 

but it does not show up as a failed service:

 

[root@Cerberus comhack]# systemctl --failed
UNIT					  LOAD   ACTIVE SUB	JOB DESCRIPTION
netcfg@multi-user.service loaded failed failed	 Netcfg networking service for profile multi-user

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB	= The low-level unit activation state, values depend on unit type.
JOB	= Pending job for the unit.

1 units listed. Pass --all to see inactive units, too.

 

As you can see it is not even found in /usr/lib/systemd/system/:

root@Cerberus comhack]# ls /usr/lib/systemd/system/ | grep display-manager
[root@Cerberus comhack]# 

Link to comment
Share on other sites

V.T. Eric Layton

I get the same thing, apparently...

 

root@ericsbane05|Arch/home/vtel57:# systemctl --all | grep display-manager
display-manager.service   error  inactive dead		  display-manager.service

Link to comment
Share on other sites

V.T. Eric Layton

Actually, I think the reason we're getting this error is because of the fact that we DON'T use a display manager. :yes:

Link to comment
Share on other sites

securitybreach

Actually, I think the reason we're getting this error is because of the fact that we DON'T use a display manager. :yes:

 

Ok that makes sense but are you getting these errors too:

[root@Cerberus comhack]# systemctl --all | grep error
auditd.service            error  inactive dead          auditd.service
display-manager.service   error  inactive dead          display-manager.service
plymouth...t-wait.service error  inactive dead          plymouth-quit-wait.service
plymouth-start.service    error  inactive dead          plymouth-start.service
rc-local.service          error  inactive dead          rc-local.service

??

Link to comment
Share on other sites

V.T. Eric Layton

Nope. The only FAIL notice I'm getting is the same one about kernel modules that I've been trying to resolve for a week or so. It's just a bug or config error because it doesn't affect the system at all. Everything is working.

 

root@ericsbane05|Arch/home/vtel57:# systemctl --failed
UNIT						 LOAD   ACTIVE SUB    JOB DESCRIPTION
systemd-modules-load.service loaded failed failed	 Load Kernel Modules

Link to comment
Share on other sites

securitybreach

Well crap

 

OK well it looks like those are inactive processes anyway as they are not coming up as failed using: systemctl --failed

Link to comment
Share on other sites

securitybreach

Ok, now I now I fixed the issue with the boot messages clearing:

Q: How to avoid the console to be cleared after boot ?

 

A: Create a custom getty@tty1.service file

Copy /usr/lib/systemd/system/getty@.service to /etc/systemd/system/getty.target.wants/getty@tty1.service, and then edit the file:

  • add --noclear to the ExecStart line after agetty
  • switch TTYVTDisallocate to no

https://wiki.archlin..._after_boot_.3F

 

This really seems like it is complicating things a lot more.

Link to comment
Share on other sites

V.T. Eric Layton

Alrighty... while looking for a resolution to display manager issue, I solved my Kernel Modules error issue.

 

In /usr/lib/systemd/system, there is this file:

 

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[unit]
Description=Load Kernel Modules
Documentation=man:systemd-modules-load.service(8) man:modules-load.d(5)
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-readahead-collect.service systemd-readahead-replay.service
Before=sysinit.target shutdown.target
ConditionCapability=CAP_SYS_MODULE
ConditionDirectoryNotEmpty=|/lib/modules-load.d
ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d
ConditionDirectoryNotEmpty=|/usr/local/lib/modules-load.d
ConditionDirectoryNotEmpty=|/etc/modules-load.d
ConditionDirectoryNotEmpty=|/run/modules-load.d

[service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/systemd-modules-load

 

Which led me to check those directories mentioned to see of there were actually any old modules files in any of them that are obsolete now. Well, there was. I had a sensors.conf in /etc/modules-load.d. I removed it and I no longer get the FAIL error now. :)

 

root@ericsbane05|Arch/home/vtel57:# systemctl --failed
UNIT LOAD   ACTIVE SUB JOB DESCRIPTION

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
JOB    = Pending job for the unit.

0 units listed. Pass --all to see inactive units, too.

 

Now about the display manager thing. I get this in dmesg:

 

[    5.415300] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory. See system logs and 'systemctl status display-manager.service' for details.

 

So...

 

root@ericsbane05|Arch/home/vtel57:# systemctl status display-manager.service
display-manager.service
     Loaded: error (Reason: No such file or directory)
     Active: inactive (dead)

 

Now what? :)

Link to comment
Share on other sites

securitybreach

Yup I get the same error with display-manager.service. After I figured this out, I need to move on to my netcfg issues.

Link to comment
Share on other sites

I'm glad I'm waiting 'til you pros get this all figured out.

 

I could do it, but this would just kill the few brain cells and hair follicles I have left.

 

Good luck!

  • Like 1
Link to comment
Share on other sites

securitybreach

Well so far:

[root@Cerberus comhack]# systemctl status netcfg@multi-user.service
netcfg@multi-user.service - Netcfg networking service for profile multi-user
  Loaded: loaded (/usr/lib/systemd/system/netcfg@.service; enabled)
  Active: failed (Result: exit-code) since Mon, 30 Jul 2012 15:29:17 -0500; 6s ago
 Process: 2041 ExecStart=/usr/bin/netcfg check-iface %i (code=exited, status=1/FAILURE)
  CGroup: name=systemd:/system/netcfg@.service/multi-user

Link to comment
Share on other sites

V.T. Eric Layton

That's why we get paid the BIG $$$. ;)

 

So Josh... display-manager error fixed:

 

root@ericsbane05|Arch/home/vtel57:# systemctl --all | grep display-manager
display-manager.service   masked inactive dead		  display-manager.service

 

root@ericsbane05|Arch/home/vtel57:# systemctl status display-manager.service
display-manager.service
  Loaded: masked (/usr/lib/systemd/system/display-manager.service; masked)
  Active: inactive (dead)

 

I'm amazing sometimes...

 

The error in dmesg was stating that there was no such file or directory, so I made one. ;)

 

In /usr/lib/systemd/system, create an empty file called "display-manager.service". Reboot. All better now. :)

Link to comment
Share on other sites

V.T. Eric Layton

Did you enable netcfg.service? I can't remember reading above whether you did or not and I'm too lazy to look...

 

# systemctl enable netcfg.service

 

Also, some reading:

 

Since version 2.8.2 netcfg provides systemd unit files. The service files net-auto-wireless.service and net-auto-wired.service correspond to the initscripts daemons /etc/rc.d/net-auto-wireless and /etc/rc.d/net-auto-wired. To connect to multiple profiles at boot you can use netcfg.service which is equivalent to /etc/rc.d/net-profiles and starts all profiles specified in the NETWORKS array in /etc/conf.d/netcfg. These service files can be enabled and started with systemctl as usual.

Alternatively you can use the template service file netcfg@.service that allows you to connect to a single profile on boot without having to specify it in /etc/conf.d/netcfg. To specify the desired profile, create a corresponding symlink to /etc/systemd/system/multi-user.target.wants:

# ln -s /usr/lib/systemd/system/netcfg@.service /etc/systemd/system/multi-user.target.wants/netcfg@.service

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...