设置了很多开机启动项,比如smb呀,svn呀,nginx之类,但是发现断电之后重启,开机启动项没有自动运行起来,后来才发现是因为wifi网络没有自动连接上,然而在帐户登录之后,这些启动项才运行起来。
问题就是,如何在账户登录之前,自动连接上wifi网络?
这里恰好我使用的ubuntu版本为16.04,可能不同版本的操作方法不一样,在该版本的ubuntu里,/etc/NetworkManager/system-connections/目录下记录了所有连接过的wifi网络,包括连接密码。
在配置中,permission项限定了哪个账户登录之后才允许连接,如果等号后面为空,表示该网络对所有账户开放,这样就在登录之前,网络就会自动连接上。
这里罗列一下关于设置开机启动的方法:
方法一:最原始的办法,各Linux也都支持,就是在/etc/init/下写upstart脚本
方法二:使用systemctl enable [service]@[config],像各种apt install安装的软件,配置文件在/etc/下的,适合使用这种方式
方法三:很特别的技巧,可能是ubuntu独有,适合于任意执行一个脚本。使用crontab -e,添加运行任务,写法特别,如下:
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
@reboot cd xxx && bash yyy.sh
BTW,ubuntu上查看crontab日志为:
grep CRON /var/log/syslog