2018年9月16日星期日

Ubuntu更改系统启动项和服务禁用

Ubuntu更改系统启动项和服务禁用

1.使用systemd-analyze blame

        使用该命令可以看到系统启动时所调用的服务以及花费的时间,使用systemctl stop命令停止该项。

     yuki@ser$ sudo systemd-analyze blame
             30.000s NetworkManager-wait-online.service
             11.936s dev-sdb5.device
             10.005s systemd-journald.service
              9.978s keyboard-setup.service
              9.939s systemd-modules-load.service
              9.790s ufw.service
              8.847s systemd-udevd.service
              7.007s fwupd.service
              3.540s snapd.service
              3.452s vmware-USBArbitrator.service
              2.921s accounts-daemon.service
              2.582s vmware.service
              2.101s dev-hugepages.mount
              2.100s dev-mqueue.mount
              2.066s NetworkManager.service
              2.025s sys-kernel-debug.mount
              1.075s lightdm.service
              1.035s iio-sensor-proxy.service
               949ms thermald.service
               861ms polkitd.service
               845ms systemd-tmpfiles-setup-dev.service
               718ms networking.service
               670ms grub-common.service
               523ms wpa_supplicant.service
        现在修改占用最大的服务NetworkManager-wait-online.service
     
    yuki@ser$ sudo systemctl stop NetworkManager-wait-online.service  #这句命令的意思是暂停DHCP等待服务
    
    yuki@ser$ sudo systemctl disable NetworkManager-wait-online.service  #这句命令的意思是禁用DHCP等待服务
    
    yuki@ser$ sudo systemctl mask NetworkManager-wait-online.service  #这句命令将该服务拉到黑洞
    
    
其他的启动项,要么不知道作用,不敢轻易修改,要么就是无法更改,顺便一体,这个硬盘的挂载,不知道为什么要12s,貌似是硬盘出了问题?上次拷贝使用iotop 命令的时候,速度峰值近100m/s。

2.使用systemctl list-unit-files --type=service | grep enabled

别的不多说,先运行下看下效果


     yuki@ser$  systemctl list-unit-files --type=service |grep enable         
             accounts-daemon.service                    enabled 
             anacron-resume.service                     enabled 
             anacron.service                            enabled 
             autovt@.service                            enabled 
             avahi-daemon.service                       enabled 
             binfmt-support.service                     enabled 
             brltty.service                             enabled 
             cron.service                               enabled 
             cups-browsed.service                       enabled 
             cups.service                               enabled 
             dbus-org.freedesktop.Avahi.service         enabled 
             dbus-org.freedesktop.nm-dispatcher.service enabled 
             dbus-org.freedesktop.thermald.service      enabled 
这是罗列出没有禁用的服务,关掉某些不会用到的服务,不经对系统没有影响,反而会加速系统开机和保证机器的安全
你也可以不使用管道来查看所有的系统服务项


3.禁用Ubuntu的崩溃检测程序

每次开机的时候都会蹦一堆出来,关了省心,至于更改相当简单,把/etc/default/apport 的文件里的enable=1的参数改为0

引用:

2018年3月27日星期二

python3的包导入

python3包导入机制



导言

    在今天的编程中,有关于包导入出错的情况再次出现,所以我决定写个blog来理清自己的思路,有些事情不仅要记下来,还要说出去,这样,有助于自己记忆力和逻辑的通顺。


实例分析

    1. MainModule同级目录

    package
        |
        +--a.py
        |   |
        |   +--class Module
        |
        +--Main.py
        我的做法
    from package.a import Module
    from .a import Module "是错误的"
     

    2.MainModule上级目录

    +--Mian.py
    |
    +--package
        |
        +--a.py
           |
           +--class Module
        我的做法
    from package.a import Module
    from /.package.a import Module
    from .package.a import Module"是错误的"
     

    3.MainModule 下级目录

    +--package
    |    |
    |    +--Main.py
    |
    +--a.py
         |
         +--class Module
       我的做法  
    from app.a import Module
    from ..a import Module "在某种情况下是对的,但是单看Main在此类情况下是错的"
    

    4.MainModule 处于不同的package

    /app
      |
      +--package1
      |   |
      |   +--Main.py
      |
      +--package2
          |
          +--a.py
              |
              +--class Module
      我的做法
    from app.package2.a import Module
    
       

    5.万能法介绍

    /app
    |  |
    |  +--package1
    |  |   |
    |  |   +--Main.py
    |  |
    |  +--a.py
    |      |
    |      +--class Module
    |
    +--manage.py
    
         
    我的做法:
    "在manager中"
    from app.package.a import Module
    "在这种情况下,main.py中导入a 可以使用from ..a import Module"
    "如果真的无法判断如何导入的情况下,从Module和Main的父目录导入总是没错的"
    from a_parent.a && main_parent.a_parent.a import Module

     

总结:


  1. 我还是没有介绍相对导入和绝对导入,自己谈的东西,还是很浅薄的一层,只是现在够用而已。
  2. 事无小事,平常如果就有注意到细节的话,这写东西在用到的时候就不会耽误自己那么久的时间去寻找答案。



引用:

2018年3月26日星期一

START


  • 一定,每个星期都要写个心得(flag在此立下)
  • 不过,这blog的代码如何插入呢。。。。研究一下

这是google-code-prettify解决方案:

    直接导入样式
    <script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js'/>
    <script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?lang=js&skin=sons-of-obsidian'/>

    之后就可以在标签下使用了
    class Main(object):
        def test(name):
            print('hello world %s'% name)
    
    if __name__ == '__main__':
        m = Main
        m.test(name='kaisen')
    from time import time
    
    
    class Camera(object):
        """An emulated camera implementation that streams a repeated sequence of
        files 1.jpg, 2.jpg and 3.jpg at a rate of one frame per second."""
    
        def __init__(self):
            self.frames = [open(f + '.jpg', 'rb').read() for f in ['1', '2', '3']]
    
        def get_frame(self):
            return self.frames[int(time()) % 3]
   <pre class="prettyprint lang-* linenums> 参数意义
    lang-* : 接语言
    linenums : 显示行号


心得:

    1.干特娘的排版布局,以后写时,注意布局,而且先写文,后插入代码
    2.google-code-prettify在这里无法表现出html文本,可能是模板的原因


引用:

    官方给出的skin方案:
     https://rawgit.com/google/code-prettify/master/styles/index.html
    指导blog:
    1. https://fantasticnote.blogspot.com/2016/08/blogger-code-highlight.html
    2. https://blog.csdn.net/u011127019/article/details/77165062