我想在lightdm身份验证成功后立即运行脚本,然后Unity开始加载。我想以root用户身份运行脚本。
Unity中的启动脚本在哪里?
我想在lightdm身份验证成功后立即运行脚本,然后Unity开始加载。我想以root用户身份运行脚本。
Unity中的启动脚本在哪里?
Answers:
首先将您的脚本放入/usr/bin
并赋予执行权限。
现在创建.desktop文件,在/home/[user-name]/.config/autostart/
其中运行您的脚本,该脚本在启动时运行。
示例:-让您的脚本文件名是“ example”或“ example.sh”
使用gedit使用以下行创建.desktop文件,并将其另存为filename.desktop /home/[user-name]/.config/autostart/
[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script
这里Exec=sudo example
或Exec=sudo example.sh
运行脚本作为根从/usr/bin
给执行权限.desktop文件。
现在,脚本在启动时运行。
另一种可能性:
在以下位置创建文件 $HOME/.config/upstart/my-upstart-script.conf
start on desktop-start
stop on desktop-end
script
sudo fdisk -l > /home/[user-name]/upstart-test.txt
end script
Upstart的更多详细信息:
http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html
http://upstart.ubuntu.com/cookbook/
sudo
无需密码即可运行的信息:
/home/yourusername/.config/upstart/
。在鹦鹉螺中打开您的家庭主管,按Ctrl + H,您应该看到目录.config
要以root身份运行命令,登录后,还有另一个简单的技巧:
这需要两个步骤:
/etc/crontab
)运行的cronjob 以运行一个小脚本(运行您的命令)。由于触发器文件已由同一脚本删除,因此您的命令仅运行一次。然后,顺序为:
USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore
设置
这两个小脚本:
一种用于在登录时创建触发文件的方法:
#!/bin/sh
touch $HOME/.trigger
一两个运行命令:
#!/bin/bash
FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root
if [ -f $FILE ]; then
<your command here, run by root>
rm -f $FILE
fi
create_trigger.sh
和run_command.sh
。将以下命令添加到您的启动应用程序中(Dash>启动应用程序>添加)
/path/to/create_trigger.sh
将以下行添加到/etc/crontab
文件(sudo nano /etc/crontab
):
* * * * * root /path/to/run_command.sh
现在,已定义的命令在登录后一分钟内运行一次。