]> git.wh0rd.org - home.git/blobdiff - .bin/gentoo-check-services
gentoo-check-services: handle samba
[home.git] / .bin / gentoo-check-services
index bff7b3339ae2dc28a571c592aad0dee0fa3eedcd..114ade945805ed5e8457355880766c720b7c304f 100755 (executable)
@@ -17,6 +17,10 @@ import time
 IGNORE_PATHS = set((
        '/dev/zero',
        '/etc/ld.so.cache',
+       '/usr/share/icons/Adwaita/icon-theme.cache',
+       '/usr/share/icons/gnome/icon-theme.cache',
+       '/usr/share/icons/hicolor/icon-theme.cache',
+       '/usr/share/mime/mime.cache',
 ))
 
 
@@ -39,10 +43,14 @@ def find_svcs():
                        if not line.endswith(' (deleted)\n'):
                                continue
                        # b71c7000-b7307000 rw-s 00000000 00:04 17024337   /dev/zero (deleted)
-                       addr, perm, offset, dev, inode, path, _ = line.split()
+                       addr, perm, offset, dev, inode, path = line.split(' ', 5)
+                       # Handle paths with spaces.
+                       path = path.lstrip().rsplit(' ', 2)[0]
                        if (path == '/[aio]' or
+                           path.startswith('/memfd:') or
                            path.startswith('/SYSV') or
-                           path.startswith('/dev/shm/')):
+                           path.startswith('/dev/shm/') or
+                           path.startswith('/tmp/')):
                                continue
                        old_paths.add(path)
 
@@ -71,25 +79,29 @@ SERVICES = {
        '/usr/sbin/bacula-fd': 'bacula-fd',
        '/usr/sbin/cron': 'vixie-cron',
        '/usr/sbin/crond': 'dcron',
+       '/usr/sbin/ntpd': 'ntpd',
        '/usr/sbin/snmpd': 'snmpd',
        '/usr/sbin/sshd': 'sshd',
        '/usr/sbin/syslog-ng': 'syslog-ng',
        '/usr/sbin/xinetd': 'xinetd',
+       '/usr/bin/daisydog': 'daisydog',
        '/usr/bin/distccd': 'distccd',
        '/usr/bin/monit': 'monit',
+       '/usr/bin/rsync': 'rsyncd',
+       '/usr/sbin/smbd': 'samba',
        '/usr/bin/stunnel': 'stunnel',
        '/usr/bin/tor': 'tor',
        '/usr/bin/transmission-daemon': 'transmission-daemon',
        '/usr/bin/mediatomb': 'mediatomb',
        '/lib/systemd/systemd-udevd': 'udev',
        '/usr/libexec/nrpe': 'nrpe',
-       '/usr/libexec/postfix/master': 'postfix',
+       '//usr/libexec/postfix/master': 'postfix',
        'denyhosts.py': 'denyhosts',
        'dropbear': 'dropbear',
        'galileo': 'galileo',
        'tlsdated': 'tlsdated',
 }
-def auto_restart(svcs):
+def auto_restart(opts, svcs):
        kill = set()
        restart = set()
        for pid, svc in svcs.items():
@@ -112,13 +124,16 @@ def auto_restart(svcs):
        if kill or restart:
                for pid in kill:
                        print('killing %s (%s)' % (pid, svcs[pid]['cmdline'][0]))
-                       os.kill(pid, signal.SIGTERM)
+                       if not opts.dryrun:
+                               os.kill(pid, signal.SIGTERM)
                for init in restart:
                        print('restarting %s' % init)
-                       os.system('/etc/init.d/%s -q restart' % init)
+                       if not opts.dryrun:
+                               os.system('/etc/init.d/%s -q restart' % init)
 
-               time.sleep(1)
-               svcs = find_svcs()
+               if not opts.dryrun:
+                       time.sleep(1)
+                       svcs = find_svcs()
 
        return svcs
 
@@ -141,6 +156,8 @@ def summarize(svcs):
 
 def get_parser():
        parser = argparse.ArgumentParser(description=__doc__)
+       parser.add_argument('-n', '--dry-run', dest='dryrun', action='store_true',
+                           help='Show what would be restarted (and why)')
        return parser
 
 
@@ -149,7 +166,7 @@ def main(argv):
        opts = parser.parse_args(argv)
 
        svcs = find_svcs()
-       svcs = auto_restart(svcs)
+       svcs = auto_restart(opts, svcs)
        summarize(svcs)