鉴于我正在运行 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 startup
或者sudo 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
为什么我的启动脚本可以运行而我的关机脚本却不运行? 为什么 upstart 可以工作?或者说可以工作?我非常困惑。
答案1
这可能是权限问题。两个.conf
文件都需要可执行。
做:
chmod a+x ~/.config/upstart/shutdown.conf
答案2
为什么 upstart 可以工作?或者说,它真的可以工作吗?[…] 我仍然不明白 upstart 到底为什么可以工作。
systemd 作为系统范围的服务管理器运行。upstart 作为每个会话的服务管理器运行。
进一步阅读
- https://askubuntu.com/a/613814/43344
- “启动和服务管理”。 Upstart 版本 15 发行说明. 2015-04-24. Ubuntu。
- “会话初始化”。新贵食谱.乌本。
- James Hunt、Stéphane Graber、Dmitrijs Ledkovs 和 Steve Langasek(2012-11-12)。“重生用户作业和 PID 跟踪”。 Ubuntu Raring 新贵用户会议.乌本。
- 内森·威利斯(2013-04-17)。 用户会话的 Upstart。左舷。
- 讨论如何将 Session Inits (upstart) 迁移到 systemd 2014-03-11。Ubuntu峰会。
- https://unix.stackexchange.com/a/194208/5132