我在Google中找不到它。
我尝试~/.profile
,但似乎每个标签都在运行。
我在哪里可以找到地图:file
---> when runs
?
我在Ubuntu,我把它放在/etc/rc.local
但命令没有被执行:
my_command
exit 0
答案 0 :(得分:0)
man zshall
中描述了每个文件运行时间的映射,搜索STARTUP/SHUTDOWN FILES
。
[...]
正如其他人所指出的那样,你需要通过运行一次来更清楚地表达你的意思。每次开机一次?每次桌面登录一次?
每个登录shell 为~/.profile
,但您始终可以启动更多登录shell。
如果你有一个shell代码块,你真的只想执行一次,你应该进行合理的检查,看看你是否已经运行它,如:
/tmp
上创建一个文件,比如/ran/withsuccess
,然后chmod -w
。它将在重新启动时被删除(假设您的操作系统执行此操作...)gpg-agent
为了避免两次启动gpg-agent
,我检查env变量,然后看看我是否可以连接:
# Effectively checks if GPG_ENV is set and if it is set to an existing file
if [ -f "${GPG_ENV}" ]; then
# assumes gpg-agent is set... try to connect
gpg-connect-agent 'getinfo socket_name' /bye &> /dev/null
if [[ $? -eq 1 ]]; then
start_agent
fi
else
# runs the gpg-agent start-up which I do not want to run twice
start_agent
fi
答案 1 :(得分:0)
是Mac吗?使用launchd
..
创建一个类似于......的plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.mycompany.startupscript</string>
<key>LaunchOnlyOnce</key>
<true/>
<key>Program</key>
<string>/usr/local/bin/startupscript</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
将其加入/Library/LaunchDaemons
,并拥有-rw-r--r-- root wheel
个正确的权限&#39; ...您也可以实现启动脚本必杀技。