操作系统:Ubuntu 12.04
任务:在某些启动/停止条件下运行脚本。不会启动长期运行的服务/守护进程,仅启动短期操作。
新贵脚本test.conf:
description "test script"
start on local-filesystems or runlevel [2345]
stop on runlevel [!2345]
task
pre-start exec /full/path/to/script.sh start
pre-stop exec /full/path/to/script.sh stop
Run Code Online (Sandbox Code Playgroud)
问题:
原始任务可以使用新贵脚本解决吗?
谢谢。
更新。“事实上,您的 script.sh 具有启动和停止操作,这确实表明有一个长期运行的守护进程”
没有矛盾。有启动操作和清理操作,中间没有长时间运行的进程。
当我添加“exec”节时,即
exec /full/path/to/script.sh idle
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
$ start test
test stop/waiting
$ status test
test stop/waiting
$ stop test
stop: Unknown instance:
Run Code Online (Sandbox Code Playgroud)
更正:节中提到的脚本是使用“start”和“idle”参数执行的,但不使用“stop”参数执行。
我已经使用Ubuntu很长时间了,这是我使用时发生的情况:
Systemd:
它的性能非常糟糕systemd:它一直使用 95% 的 CPU,而且 PC 变得非常热。启动也需要很长时间(大约 1.5 分钟,有时它根本无法启动,因为它在启动时出现黑屏。)
新贵:
当我upstart在启动时尝试这些选项时,它按预期执行,在几秒钟内启动,它应该是很棒的。
笔记本电脑:
问题:
systemd?systemd?我想在 System V 作业 ( /etc/rc0.d/S40umountfs)之前立即启动 Upstart 作业。我试过指定:
start on starting umountfs
Run Code Online (Sandbox Code Playgroud)
但 Upstart 无法识别脚本的名称:
$ initctl check-config
collapsefs
start on: unknown job umountfs
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
所以我对如何在我的 Ubuntu 11.10 服务器上创建启动脚本感到困惑。我已经阅读了关于init-scripts、upstart-jobs 等的内容,但我读得越多,就越感到困惑。
我尝试了各种指南,但我还没有找到真正有效的人。
有人可以告诉我如何创建一个可以在 11.10 中运行的简单脚本吗?
我有一个 python gtk 应用程序,我需要在用户登录时运行。即使 x 正在运行,我也无法启动任何 gui 应用程序。
当我登录 X 时,我从下面的 upstart 脚本中发出事件
guitest
Run Code Online (Sandbox Code Playgroud)
使用 initctl,我得到
initctl: Event failed
Run Code Online (Sandbox Code Playgroud)
这是我的脚本示例,除了我用我的应用程序替换了 gedit。如何修改此脚本以便 gedit 或我的 python gtk 应用程序将启动?
task
start on desktop-session-start or guitest
script
gedit
end script
Run Code Online (Sandbox Code Playgroud) 我刚刚更改了服务器上的时区,因此需要重新启动 crond 以便它接收更改,但是当我尝试时,会发生以下情况:
root@s2:/# service cron restart
stop: Unknown job: cron
start: Unknown job: cron
Run Code Online (Sandbox Code Playgroud)
或者
root@s2:/# /etc/init.d/cron restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart
initctl: Unknown job: cron
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop cron ; start cron. The restart(8) utility is also available.
Run Code Online (Sandbox Code Playgroud)
进程列表说:
root@s2:/# ps aux | …Run Code Online (Sandbox Code Playgroud) 我已经与这个问题斗争了三天,我尝试了很多方法来解决它,但还没有成功。我希望你们能帮助我...
我有一个 GUI 应用程序。我想自动启动这个应用程序。当它意外关闭或关闭时,我想重新打开此应用程序。
我尝试使用 upstart 脚本,但是尽管 upstart 的服务没有问题,但 GUI 应用程序并未以 upstart 脚本启动。它说无法连接 X 服务器。
我应该添加或更改一些设置以使用 upstart 打开还是有任何方法可以在发生意外退出或关闭时自动打开 GUI 应用程序(不仅仅是登录后一次,我的意思是不是使用 Startup)?
我想foo do-startup-things在启动时foo do-shutdown-things运行,并在关闭时运行foo我自己的程序。
看起来 Upstart 是一个很好的候选者,但 Upstart 似乎是为与守护程序一起使用而设计的,因此运行service foo stop会产生错误,stop: Unknown instance:因为运行启动作业时执行的进程不再运行。
有没有办法在不启动守护进程的情况下使用 Upstart 在启动和关闭时执行任务?
对于我在 15.04 安装中使用的每个内核,我在 GRUB 中有三个选项:
如何删除upstart所有内核的选项?
今天我随机收到一个“磁盘已满”对话框,表明我只剩下 1gb 在 / 上,这很快变成了 100mb 的可用空间。
所以我运行了磁盘分析器,在 ~/.cache/upstart 中发现了一个巨大的 38.1 GB
当我打开这个文件夹时,有很多事情的 229 个日志,看起来像是彼此的备份这里是几个例子
at-spi2-registryd.log.1.gz
at-spi2-registryd.log.2.gz
at-spi2-registryd.log.3.gz
gnome-keyring-ssh.log.1.gz
gnome-keyring-ssh.log.2.gz
gnome-keyring-ssh.log.3.gz
Run Code Online (Sandbox Code Playgroud)
所以我的问题是
为什么这个增长这么大?
什么是暴发户,上述文件夹中保存了哪些日志?
我可以删除它们以快速修复吗?