Linux 系统有两种交互模式,文本交互及图形化桌面交互,根据用户的脚本功能的不同,就要选择合适的启动方式。
下面介绍两种随开机自启动脚本方法。
如果脚本功能不涉及桌面图像界面的话,就使用方法一,否则使用方法二。
方法一:
修改 /etc/rc.local 文件,该文件是Linux系统运行级别为2-5时启动调用的文件,可在该文件中添加运行脚本的指令。
如运行 /opt/mystart.sh 脚本,添加如下,保存,即可随系统启动自动运行脚本。
# vim /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Generate the SSH keys if non-existent
if [ ! -f /etc/ssh/ssh_host_rsa_key ]
then
# else ssh service start in dpkg-reconfigure will fail
systemctl stop ssh.socket||true
# dpkg-reconfigure openssh-server
dpkg --force-confdef --force-confold --configure -a
fi
/opt/mystart.sh
exit 0
方法二:
随用户桌面启动,该方法通过桌面启动后加载桌面程序实现。
开启一个终端,然后在终端执行指令运行脚本。
通过图形界面配置:
1、alt+F2,输入gnome-session-properties
2、Add 按钮
3、在command栏里输入我们要添加的程序:gnome-terminal -x bash -c "/opt/mystart.sh"
4、保存
通过命令窗口配置:
在 /home/xx/.config/autostart 中添加xx.desktop 文件,如果没有autostart 文件夹就建个。
#touch myapp.desktop
#vim myapp.desktop
输入如下内容:
[Desktop Entry]
Type=Application
Exec=gnome-terminal -x bash -c "/opt/mystart.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myApp
Comment=play audio
gnome-terminal 可能需要安装,apt-get install gnome-terminal.
如果脚本程序涉及到权限问题,则要做如下修改:
创建密码文件.pw (需要以所登陆的用户进行创建),写入如下内容并添加可执行权限chmod +x .pw,将其放
到与脚本同目录下,赋予权限 。
#touch .pw
#vim .pw
输入内容:
#! /bin/bash
echo 123456
赋予权限:
chmod +x .pw
在脚本mystart.sh中最前面添加如下代码
#vim mystart.sh
输入内容:
#!/bin/bash
export SUDO_ASKPASS=/opt/.pw
# xxx 为要执行的指令
sudo -A xxx
...
如果通过上面操作,还是因为权限问题无法执行脚本,可通过直接修改普通用户的权限为root。
修改/etc/passwd 文件
#vim /etc/passwd
...
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
_apt:x:104:65534::/nonexistent:/bin/false
firefly:x:1000:1000:firefly,,,:/home/firefly:/bin/bash
messagebus:x:105:106::/var/run/dbus:/bin/false
lightdm:x:106:111:Light Display Manager:/var/lib/lightdm:/bin/false
...
找到用户那行,该例为firefly用户,
将下行:
firefly:x:1000:1000:firefly,,,:/home/firefly:/bin/bash
修改为:
firefly:x:0:1000:firefly,,,:/home/firefly:/bin/bash
通过上面修改,普通用户就可获得root所有权限。
重启系统,查看是否自动运行。