Ubuntu 自动运行用户脚本的方法

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所有权限。

    重启系统,查看是否自动运行。

你可能感兴趣的:(Linux,Ubuntu)