archlinux在命令行模式下开机自动登陆

$sudo mkdir /etc/systemd/system/[email protected] 新建一个目录
用命令在新目录下建立一个autologin.conf文件,并加入如下内容:
$sudo nano /etc/systemd/system/[email protected]/autologin.conf
并加入如下内容:
[Service]ExecStart=ExecStart=-/usr/bin/agetty --autologin archie --noclear %I 38400 linux
archie就是要自动登陆的用户名。


###开机自动执行一条命令
在文件夹/usr/lib/systemd/system/里面新建一个文件example.service
内容为:
[Unit]
Description=example
[Service]
Type=oneshot
ExecStart=/path/to/scriptfile/example.sh
[Install]
WantedBy=multi-user.target
然后设置此服务开机启动
sudo systemctl enable example.service
此方法的好处是:
有以后需要修改命令或者添加什么命令只用修改/path/to/scriptfile/example.sh就可以

然后自动执行程序,我用的是上面英文资料中的方法。先新建了一个文件 .bash_profile,放在(/root);;;;/home/bananapi下,然后把命令放进去,就是

/home/bananapi/scripts/retroarch_framebuffer_start.sh 
注意要设定自动登录的身份是BananaPi,然后reboot,就可以看到开机先自动登录,然后就自动执行上面那句命令了。

有一些教程说,应该把命令添加到文件/home/bananapi/bashrc下(这里的.bashrc是隐藏文件,要用ls -a 才能看到,其实新建的 .bash_profile也是隐藏文件,也是要用ls -a 才能看到),但是我尝试了把命令添加到bashrc里,实际上是不行的。后来请教ryad,才知道问题在于:.bashrc是用于交互式不需要登录的执行脚本,而 .bash_profile是登录进去之后的执行脚本,因为我们已经登录进去了,所以要执行.bash_profile文件。

最终,还是要把命令写入到 .bash_profile,并以bananapi身份登录,才能开机自动执行命令,打开应用。

[Unit]
Description=xiyoulibapi
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/node.js/pid
ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www
ExecReload=/usr/local/bin/forever restart /node.js/xiyoulib/bin/www
ExecStop=/usr/local/bin/forever stop /node.js/xiyoulib/bin/www
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章