From Fedora Project Wiki
No edit summary |
|||
Line 5: | Line 5: | ||
systemd-units-20-1.fc15.i686<BR> | systemd-units-20-1.fc15.i686<BR> | ||
Test package: ser2net (with fixed draft scriptlets). | Test package: ser2net (with fixed draft scriptlets). | ||
== Disabled by default == | |||
=== New install (not upgrade) === | === New install (not upgrade) === | ||
Line 29: | Line 31: | ||
1:ser2net ########################################### [100%] | 1:ser2net ########################################### [100%] | ||
# | # At this point, the .service file is in place, but no symlinks have been created. | ||
# Accordingly, systemctl does not list ser2net as a service | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | [spot@f15 ~]$ sudo systemctl -a |grep ser2net | ||
ser2net | [spot@f15 ~]$ | ||
# Check to make sure that ser2net is not running | |||
[spot@f15 ~]$ ps ax |grep ser2net | [spot@f15 ~]$ ps ax |grep ser2net | ||
20232 pts/0 S+ 0:00 grep --color=auto ser2net | 20232 pts/0 S+ 0:00 grep --color=auto ser2net | ||
Line 45: | Line 51: | ||
20245 pts/0 S+ 0:00 grep --color=auto ser2net | 20245 pts/0 S+ 0:00 grep --color=auto ser2net | ||
# Try to connect to ser2net | |||
[spot@f15 ~]$ telnet localhost 3011 | |||
Trying 127.0.0.1... | |||
Connected to localhost. | |||
Escape character is '^]'. | |||
this is ser2net TCP port 3011 device /dev/ttyS0 | |||
second line third line | |||
Connection closed by foreign host. | |||
# Manually stop ser2net service with systemctl | |||
[spot@f15 ~]$ sudo systemctl stop ser2net.service | |||
[spot@f15 ~]$ | |||
# Confirm successful shutdown | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | |||
ser2net.service loaded inactive dead Proxy that allows tcp co | |||
# Try to connect to ser2net | |||
[spot@f15 ~]$ telnet localhost 3011 | |||
Trying 127.0.0.1... | |||
telnet: connect to address 127.0.0.1: Connection refused | |||
# Reboot system | |||
[spot@f15 ~]$ sudo shutdown -r now | |||
# Listen to some music. Wait for system to reboot. | |||
# Check to see what systemctl sees | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | |||
[spot@f15 ~]$ | |||
# Okay, it is back to not seeing it at all. Try to start it again: | |||
[spot@f15 ~]$ sudo systemctl start ser2net.service | |||
# Check to see if it reports as running | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | |||
ser2net.service loaded active running Proxy that allows tcp co | |||
# Confirm that it is actually running | |||
[spot@f15 ~]$ ps ax |grep ser2net | |||
1256 ? S 0:00 /usr/sbin/ser2net | |||
1261 pts/0 S+ 0:00 grep --color=auto ser2net | |||
# Try to connect to ser2net (expected success) | |||
[spot@f15 ~]$ telnet localhost 3011 | |||
Trying 127.0.0.1... | |||
Connected to localhost. | |||
Escape character is '^]'. | |||
this is ser2net TCP port 3011 device /dev/ttyS0 | |||
second line third line | |||
Connection closed by foreign host. | |||
# Reboot once more, it should not be running afterwards. | |||
[spot@f15 ~]$ sudo shutdown -r now | |||
# Do a little dance. Wait for system to reboot. | |||
# Check to see if it reports as running | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | |||
[spot@f15 ~]$ | |||
# Confirm that ser2net is not running | |||
[spot@f15 ~]$ ps ax |grep ser2net | |||
1248 pts/0 S+ 0:00 grep --color=auto ser2net | |||
# Try to connect to ser2net (expected fail) | |||
[spot@f15 ~]$ telnet localhost 3011 | |||
Trying 127.0.0.1... | |||
telnet: connect to address 127.0.0.1: Connection refused | |||
</pre> | |||
=== Remove package === | |||
<pre> | |||
# Remove ser2net package | # Remove ser2net package | ||
[spot@f15 ~]$ sudo rpm -e ser2net | [spot@f15 ~]$ sudo rpm -e ser2net | ||
Line 53: | Line 132: | ||
# Confirm that systemctl knows the service is disabled | # Confirm that systemctl knows the service is disabled | ||
[spot@f15 ~]$ systemctl -a |grep ser2net | [spot@f15 ~]$ sudo systemctl -a |grep ser2net | ||
ser2net.service error inactive dead ser2net.service | ser2net.service error inactive dead ser2net.service | ||
# | # Attempt to connect to ser2net (expected fail) | ||
[spot@f15 ~]$ telnet localhost 3011 | |||
Trying 127.0.0.1... | |||
telnet: connect to address 127.0.0.1: Connection refused | |||
# Attempt to start service | |||
[spot@f15 ~]$ sudo systemctl start ser2net.service | [spot@f15 ~]$ sudo systemctl start ser2net.service | ||
Failed to issue method call: Unit ser2net.service failed to load: No such file or directory. See system logs and 'systemctl status' for details. | Failed to issue method call: Unit ser2net.service failed to load: No such file or directory. See system logs and 'systemctl status' for details. | ||
# Fails as expected. systemctl does not garbage collect dead entry on daemon-reload. | |||
# ? Is there another way to force garbage collection? | |||
# Reboot system to see what systemd reports. | |||
[spot@f15 ~]$ sudo shutdown -r now | |||
# Wait for system to reboot, then confirm service is not running | |||
[spot@f15 ~]$ ps ax |grep ser2net | |||
1262 pts/0 S+ 0:00 grep --color=auto ser2net | |||
# Attempt to connect to ser2net (expected fail) | |||
[spot@f15 ~]$ telnet localhost 3011 | |||
Trying 127.0.0.1... | |||
telnet: connect to address 127.0.0.1: Connection refused | |||
# systemctl has forgotten about the ser2net service | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | |||
[spot@f15 ~]$ | |||
</pre> | |||
=== Upgrade === | |||
<pre> | |||
# Check that package is not installed | |||
[spot@f15 ~]$ rpm -q ser2net | |||
package ser2net is not installed | |||
# Make sure there are no legacy SysV scripts for ser2net | |||
[spot@f15 ~]$ chkconfig --list ser2net | |||
Note: This output shows SysV services only and does not include native | |||
systemd services. SysV configuration data might be overriden by native | |||
systemd configuration. | |||
error reading information on service ser2net: No such file or directory | |||
# Confirm that systemctl doesn't know about ser2net | |||
[spot@f15 ~]$ sudo systemctl -a | grep ser2net | |||
[spot@f15 ~]$ | |||
# Install first ser2net package | |||
[spot@f15 ~]$ sudo rpm -ivh /home/spot/rpmbuild/RPMS/i686/ser2net-2.7-3.fc15.i686.rpm | |||
Preparing... ########################################### [100%] | |||
1:ser2net ########################################### [100%] | |||
# Manually start ser2net service | |||
[spot@f15 ~]$ sudo systemctl start ser2net.service | |||
# Check to see if it reports as running | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | |||
ser2net.service loaded active running Proxy that allows tcp co | |||
# Note that this description starts with "Proxy..." | |||
# Confirm that it is actually running | |||
[spot@f15 ~]$ ps ax |grep ser2net | |||
1294 ? S 0:00 /usr/sbin/ser2net | |||
1299 pts/0 S+ 0:00 grep --color=auto ser2net | |||
# Note that the PID of the process is 1294 | |||
# Try to connect to ser2net (expected success) | |||
[spot@f15 ~]$ telnet localhost 3011 | |||
Trying 127.0.0.1... | |||
Connected to localhost. | |||
Escape character is '^]'. | |||
this is ser2net TCP port 3011 device /dev/ttyS0 | |||
second line third line | |||
Connection closed by foreign host. | |||
# Now, update to newer package | |||
# NOTE: Newer package has a different description in ser2net.service to show that systemd is operating on the new instance. | |||
# This package is too simple for anything more complicated. | |||
# Upgrade package | |||
[spot@f15 ~]$ sudo rpm -Uvh /home/spot/rpmbuild/RPMS/i686/ser2net-2.7-5.fc15.i686.rpm | |||
Preparing... ########################################### [100%] | |||
1:ser2net ########################################### [100%] | |||
# Check to see if it reports as running | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | |||
[spot@f15 ~] | |||
# It does not, check for running processes | |||
[spot@f15 ~]$ ps ax |grep ser2net | |||
3747 pts/0 S+ 0:00 grep --color=auto ser2net | |||
# Attempt to connect (expected fail) | |||
[spot@f15 ~]$ telnet localhost 3011 | |||
Trying 127.0.0.1... | |||
telnet: connect to address 127.0.0.1: Connection refused | |||
# Manually start ser2net service | |||
[spot@f15 ~]$ sudo systemctl start ser2net.service | |||
# Check to see if it reports as running | |||
[spot@f15 ~]$ sudo systemctl -a |grep ser2net | |||
</pre> | </pre> |
Revision as of 19:58, 23 March 2011
Testing Systemd new package scriptlets
Environment
Fedora 15 i686
systemd-units-20-1.fc15.i686
Test package: ser2net (with fixed draft scriptlets).
Disabled by default
New install (not upgrade)
# Check that package is not installed [spot@f15 ~]$ rpm -q ser2net package ser2net is not installed # Make sure there are no legacy SysV scripts for ser2net [spot@f15 ~]$ chkconfig --list ser2net Note: This output shows SysV services only and does not include native systemd services. SysV configuration data might be overriden by native systemd configuration. error reading information on service ser2net: No such file or directory # Confirm that systemctl doesn't know about ser2net [spot@f15 ~]$ sudo systemctl -a | grep ser2net # Install ser2net package [spot@f15 ~]$ sudo rpm -ivh /home/spot/rpmbuild/RPMS/i686/ser2net-2.7-3.fc15.i686.rpm Preparing... ########################################### [100%] 1:ser2net ########################################### [100%] # At this point, the .service file is in place, but no symlinks have been created. # Accordingly, systemctl does not list ser2net as a service [spot@f15 ~]$ sudo systemctl -a |grep ser2net [spot@f15 ~]$ # Check to make sure that ser2net is not running [spot@f15 ~]$ ps ax |grep ser2net 20232 pts/0 S+ 0:00 grep --color=auto ser2net # Manually start ser2net.service with systemctl [spot@f15 ~]$ sudo systemctl start ser2net.service # Confirm successful startup [spot@f15 ~]$ systemctl -a |grep ser2net ser2net.service loaded active running Proxy that allows tcp co [spot@f15 ~]$ ps ax |grep ser2net 20241 ? S 0:00 /usr/sbin/ser2net 20245 pts/0 S+ 0:00 grep --color=auto ser2net # Try to connect to ser2net [spot@f15 ~]$ telnet localhost 3011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. this is ser2net TCP port 3011 device /dev/ttyS0 second line third line Connection closed by foreign host. # Manually stop ser2net service with systemctl [spot@f15 ~]$ sudo systemctl stop ser2net.service [spot@f15 ~]$ # Confirm successful shutdown [spot@f15 ~]$ sudo systemctl -a |grep ser2net ser2net.service loaded inactive dead Proxy that allows tcp co # Try to connect to ser2net [spot@f15 ~]$ telnet localhost 3011 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused # Reboot system [spot@f15 ~]$ sudo shutdown -r now # Listen to some music. Wait for system to reboot. # Check to see what systemctl sees [spot@f15 ~]$ sudo systemctl -a |grep ser2net [spot@f15 ~]$ # Okay, it is back to not seeing it at all. Try to start it again: [spot@f15 ~]$ sudo systemctl start ser2net.service # Check to see if it reports as running [spot@f15 ~]$ sudo systemctl -a |grep ser2net ser2net.service loaded active running Proxy that allows tcp co # Confirm that it is actually running [spot@f15 ~]$ ps ax |grep ser2net 1256 ? S 0:00 /usr/sbin/ser2net 1261 pts/0 S+ 0:00 grep --color=auto ser2net # Try to connect to ser2net (expected success) [spot@f15 ~]$ telnet localhost 3011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. this is ser2net TCP port 3011 device /dev/ttyS0 second line third line Connection closed by foreign host. # Reboot once more, it should not be running afterwards. [spot@f15 ~]$ sudo shutdown -r now # Do a little dance. Wait for system to reboot. # Check to see if it reports as running [spot@f15 ~]$ sudo systemctl -a |grep ser2net [spot@f15 ~]$ # Confirm that ser2net is not running [spot@f15 ~]$ ps ax |grep ser2net 1248 pts/0 S+ 0:00 grep --color=auto ser2net # Try to connect to ser2net (expected fail) [spot@f15 ~]$ telnet localhost 3011 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused
Remove package
# Remove ser2net package [spot@f15 ~]$ sudo rpm -e ser2net # Confirm service is no longer running [spot@f15 ~]$ ps ax |grep ser2net 20256 pts/0 S+ 0:00 grep --color=auto ser2net # Confirm that systemctl knows the service is disabled [spot@f15 ~]$ sudo systemctl -a |grep ser2net ser2net.service error inactive dead ser2net.service # Attempt to connect to ser2net (expected fail) [spot@f15 ~]$ telnet localhost 3011 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused # Attempt to start service [spot@f15 ~]$ sudo systemctl start ser2net.service Failed to issue method call: Unit ser2net.service failed to load: No such file or directory. See system logs and 'systemctl status' for details. # Fails as expected. systemctl does not garbage collect dead entry on daemon-reload. # ? Is there another way to force garbage collection? # Reboot system to see what systemd reports. [spot@f15 ~]$ sudo shutdown -r now # Wait for system to reboot, then confirm service is not running [spot@f15 ~]$ ps ax |grep ser2net 1262 pts/0 S+ 0:00 grep --color=auto ser2net # Attempt to connect to ser2net (expected fail) [spot@f15 ~]$ telnet localhost 3011 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused # systemctl has forgotten about the ser2net service [spot@f15 ~]$ sudo systemctl -a |grep ser2net [spot@f15 ~]$
Upgrade
# Check that package is not installed [spot@f15 ~]$ rpm -q ser2net package ser2net is not installed # Make sure there are no legacy SysV scripts for ser2net [spot@f15 ~]$ chkconfig --list ser2net Note: This output shows SysV services only and does not include native systemd services. SysV configuration data might be overriden by native systemd configuration. error reading information on service ser2net: No such file or directory # Confirm that systemctl doesn't know about ser2net [spot@f15 ~]$ sudo systemctl -a | grep ser2net [spot@f15 ~]$ # Install first ser2net package [spot@f15 ~]$ sudo rpm -ivh /home/spot/rpmbuild/RPMS/i686/ser2net-2.7-3.fc15.i686.rpm Preparing... ########################################### [100%] 1:ser2net ########################################### [100%] # Manually start ser2net service [spot@f15 ~]$ sudo systemctl start ser2net.service # Check to see if it reports as running [spot@f15 ~]$ sudo systemctl -a |grep ser2net ser2net.service loaded active running Proxy that allows tcp co # Note that this description starts with "Proxy..." # Confirm that it is actually running [spot@f15 ~]$ ps ax |grep ser2net 1294 ? S 0:00 /usr/sbin/ser2net 1299 pts/0 S+ 0:00 grep --color=auto ser2net # Note that the PID of the process is 1294 # Try to connect to ser2net (expected success) [spot@f15 ~]$ telnet localhost 3011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. this is ser2net TCP port 3011 device /dev/ttyS0 second line third line Connection closed by foreign host. # Now, update to newer package # NOTE: Newer package has a different description in ser2net.service to show that systemd is operating on the new instance. # This package is too simple for anything more complicated. # Upgrade package [spot@f15 ~]$ sudo rpm -Uvh /home/spot/rpmbuild/RPMS/i686/ser2net-2.7-5.fc15.i686.rpm Preparing... ########################################### [100%] 1:ser2net ########################################### [100%] # Check to see if it reports as running [spot@f15 ~]$ sudo systemctl -a |grep ser2net [spot@f15 ~] # It does not, check for running processes [spot@f15 ~]$ ps ax |grep ser2net 3747 pts/0 S+ 0:00 grep --color=auto ser2net # Attempt to connect (expected fail) [spot@f15 ~]$ telnet localhost 3011 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused # Manually start ser2net service [spot@f15 ~]$ sudo systemctl start ser2net.service # Check to see if it reports as running [spot@f15 ~]$ sudo systemctl -a |grep ser2net