upstart和systemd之间的超级混淆

鉴于我运行15.10我的系统应该使用systemd确认…

 $ ps -p1 | grep systemd && echo systemd || echo upstart 1 ? 00:00:02 systemd systemd 

但是我定义了一个upstart脚本, ~/.config/upstart/startup.conf

 description "my startup scripts" start on desktop-start task console log script exec ~/scripts/startup.sh start end script 

启动脚本的工作原理我想用upstart

但后来我还定义了一个关闭脚本, ~/.config/upstart/shutdown.conf

 description "my shutdown scripts" start on desktop-end task console log script exec ~/scripts/backup.sh start end script 

但是那个脚本没有开始。 当我尝试手动启动时…

sudo start startupsudo start shutdown我得到..

 start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused 

如果我从~/scripts/backup.sh手动运行它,则关闭脚本可以正常工作。

权限

 -rwxrwxr-x 1 deanresin deanresin 933 May 28 01:31 backup.sh -rwxrwxr-x 1 deanresin deanresin 2061 May 28 14:06 startup.sh -rw-rw-r-- 1 deanresin deanresin 124 May 28 14:04 shutdown.conf -rw-rw-r-- 1 deanresin deanresin 218 May 28 14:02 startup.conf 

感谢下面的评论者,这是一个许可问题。 变成..

 -rwxrwxr-x 1 deanresin deanresin 124 May 28 14:04 shutdown.conf -rwxrwxr-x 1 deanresin deanresin 218 May 28 14:02 startup.conf 

编辑:由于某种原因, startup.conf不需要执行权限。 这些权限正在运作……

 -rwxrwx--- 1 deanresin deanresin 124 May 28 14:04 shutdown.conf -rw-rw---- 1 deanresin deanresin 218 May 28 14:02 startup.conf 

为什么我的启动脚本工作,为什么我的关机脚本不起作用? 为什么新贵工作? 或者是吗? 我非常困惑。

这可能是权限问题。 两个.conf文件都需要是可执行的。

做:

 chmod a+x ~/.config/upstart/shutdown.conf 

为什么新贵工作? 或者是吗? […]我仍然很困惑为什么暴发户正在工作。

systemd作为系统范围的服务管理器运行。 upstart作为每会话服务管理器运行。

进一步阅读

  • https://askubuntu.com/a/613814/43344
  • “启动和服务管理” 。 Upstart 15版发行说明 。 2015年4月24日。 Ubuntu Linux系统。
  • “会话初始化” 。 新贵食谱 。 Ubuntu Linux系统。
  • James Hunt,StéphaneGraber,Dmitrijs Ledkovs和​​Steve Langasek(2012-11-12)。 “重新生成用户作业和PID跟踪” 。 Ubuntu Raring新贵用户会话 。 Ubuntu Linux系统。
  • 内森威利斯(2013-04-17)。 用户会话的新贵 。 LWN。
  • 讨论Session Inits(新贵)如何迁移到systemd 2014-03-11。 Ubuntu峰会。
  • https://unix.stackexchange.com/a/194208/5132