最近在Windows 10上使用Linux子系统,发现它有一个很是坑爹的特色:Linux子系统是没有开机关机状态的,每次进入Bash shell就自动载入,退出后Linux子系统的全部进程都会被关闭,若是你撞了Mysql之类的服务要想随时运行的话就要保持Bash shell的随时开启,更坑的是这些服务并不会随之进入Bash shell而自动启动, 我只好写一个Python脚本用于管理这些服务。python
Python3, argparse moduleweb
from os import system from argparse import ArgumentParser def start_service(service): system("service {} start".format(service)) def stop_service(service): system("service {} stop".format(service)) def restart_service(service): print(service) system("service {} restart".format(service)) def manage_service(): services = [] services.append("xinetd") services.append("lighttpd") return services def set_args(): parser = ArgumentParser() parser.add_argument("service", help = "the service to be managed.") parser.add_argument("-s", "--start", help = "start the service(s).", action = "store_true") parser.add_argument("-r", "--restart", help = "restart the service(s).", action = "store_true") parser.add_argument("-p", "--stop", help = "stop the service(s).", action = "store_true") return parser.parse_args() def deal(args,services): global start_service, restart_service, stop_service services = services if not args.service else services if args.service == "all"else [args.service] operation = start_service if args.start else restart_service if args.restart else stop_service for service in services: operation(service) if __name__ == "__main__": deal(set_args(),manage_service())
(env) root@DESKTOP-1DDIIV2:~# python pyops.py all -s initctl: 没法链接到 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 -p initctl: 没法链接到 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 -r xinetd initctl: 没法链接到 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脚本好写不少啊。sql