在登录时以用户登录(不是 root)身份运行脚本

在登录时以用户登录(不是 root)身份运行脚本

我想在登录时运行类似的操作:
记录锁屏事件

然后我尝试使用此答案中描述的 systemd 和 upstart: https://askubuntu.com/questions/228304/how-do-i-run-a-script-at-start-up#answer-228313

但是我的脚本从未在启动时启动过。
如果我登录后自己启动它,脚本就会运行正常。

我放置的脚本/etc/init.d/如下所示:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          screenlogger
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: screenlogger
# Description:       screenlogger
### END INIT INFO

export SCREENLOGGER="$HOME/.bin/screenlogger.sh"

if [ -e "$SCREENLOGGER" ]
then
  $SCREENLOGGER
fi

然后我意识到如果我只是放置一个echo "$HOME" >> /home/myloggin/test文件,则在重启时它将始终是空的。

此外,该脚本似乎是在启动时运行,而不是在登录时运行,并且用户不是root我自己。

所以我想知道是否可以以用户进程所有者的身份(已$HOME完成)登录时运行脚本?

答案1

我在用着~/.xprofile应用用户级设置并启动用户级服务,例如:

xss-lock slock &

我从来没有遇到过在运行此文件时 X 没有被初始化的问题。

相关内容