【Python營運】簡單的Python營運指令碼,python營運指令碼

來源:互聯網
上載者:User

【Python營運】簡單的Python營運指令碼,python營運指令碼
背景

最近在Windows 10上使用Linux子系統,發現它有一個非常坑爹的特點:Linux子系統是沒有開機關機狀態的,每次進入Bash shell就自動載入,退出後Linux子系統的所有進程都會被關閉,如果你撞了Mysql之類的服務要想隨時啟動並執行話就要保持Bash shell的隨時開啟,更坑的是這些服務並不會隨之進入Bash shell而自動啟動, 我只好寫一個Python指令碼用於管理這些服務。

相關技術

Python3, argparse module

代碼
 1 from os import system 2 from argparse import ArgumentParser 3  4 def start_service(service): 5     system("service {} start".format(service)) 6  7 def stop_service(service): 8     system("service {} stop".format(service)) 9 10 def restart_service(service):11     print(service)12     system("service {} restart".format(service))13 14 def manage_service():15     services = []16     services.append("xinetd")17     services.append("lighttpd")18     return services19 20 def set_args():21     parser = ArgumentParser()22     parser.add_argument("service", help = "the service to be managed.")23     parser.add_argument("-s", "--start", help = "start the service(s).", action = "store_true")24     parser.add_argument("-r", "--restart", help = "restart the service(s).", action = "store_true")25     parser.add_argument("-p", "--stop", help = "stop the service(s).", action = "store_true")26     return parser.parse_args()27 28 def deal(args,services):29     global start_service, restart_service, stop_service30     services = services if not args.service else services if args.service == "all"else [args.service]31     operation = start_service if args.start else restart_service if args.restart else stop_service32     for  service in services:33        operation(service)34 35 if __name__ == "__main__":36     deal(set_args(),manage_service())

 

運行開啟服務
(env) root@DESKTOP-1DDIIV2:~# python pyops.py all -sinitctl: 無法串連到 Upstart: Failed to connect to socket /com/ubuntu/upstart: 拒絕串連 * Starting internet superserver xinetd                                                                                                                          [fail] * Starting web server lighttpd                                                                                                                                  [ OK ](env) root@DESKTOP-1DDIIV2:~#
關閉服務
(env) root@DESKTOP-1DDIIV2:~# python pyops.py xinetd -pinitctl: 無法串連到 Upstart: Failed to connect to socket /com/ubuntu/upstart: 拒絕串連 * Stopping internet superserver xinetd                                                                                                                          [ OK ](env) root@DESKTOP-1DDIIV2:~#
重啟服務
(env) root@DESKTOP-1DDIIV2:~# python pyops.py xinetd -rxinetdinitctl: 無法串連到 Upstart: Failed to connect to socket /com/ubuntu/upstart: 拒絕串連 * Stopping internet superserver xinetd                                                                                                                          [ OK ] * Starting internet superserver xinetd                                                                                                                          [ OK ](env) root@DESKTOP-1DDIIV2:~#
感想

Python指令碼還是比shell指令碼好寫很多啊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.