所以我正在研究一个新贵的过程,想知道我是否可以传入多个参数
my-upstart-service restart PARM1=foo PARM2=bar PARM3=hello
Run Code Online (Sandbox Code Playgroud)
这就是我的想法
description "Multi Parm"
env USER=BLARG
start on startup
stop on shutdown
respawn
instance $PARM1
instance $PARM2
instance $PARM3
env P1=${PARM1}
env P2=${PARM2}
env P3=${PARM3}
script
exec sudo -u $USER sh -c "$P1/$P2/$P3.sh"
end script
Run Code Online (Sandbox Code Playgroud)
我可以做这样的事情吗?
昨天,我做了一个update/ dist-upgrade。今天,我打开了机器,它挂在加载屏幕上,带有徽标和循环点 - 我在这个屏幕上等了大约一个小时几次,但没有结果。如果我upstart用 ctrl-alt-del中断,启动将恢复/完成,但它使我进入 tty 控制台登录。X几秒钟后确实开始了,但会立即显示有关图形配置不正确的对话框。更新:X 问题已通过执行解决apt-get install nvidia-current。中断问题仍然存在。
不幸的是,我发现的关于为什么会发生这种情况的每一条线索都变成了死胡同。这是我的boot.log(来自/var/log)显示我中断启动的地方。您可以看到它在开始“启用剩余的启动时加密块设备”(来自cryptdisks)时挂起,但删除该服务没有任何区别。我已经尝试了这个 Mint bug report 中的几乎所有内容,它描述的症状几乎与我的相同,但无济于事。在这一点上,我相当确定这cryptdisks是一个红鲱鱼,它完全是另一回事。
我还发现从恢复模式恢复启动似乎以不同的顺序加载东西。Upstart仍然挂起,但不是之后cryptdisks。如果我按 ctrl-alt-del,它会将我带到图形登录管理器而不是 tty,并且我可以成功登录。然而,该系统仍然没有完全发挥作用。USB 即插即用似乎不起作用,我无法使用我的第二台显示器,我必须手动start resolvconf访问互联网。这是其中一家初创公司的 boot.log。
我应该补充一点,我正在使用 加密我的硬盘LUKS,并且在我成功输入解密密码后挂起。这是我的fstab,以防万一它与事情有关:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may …Run Code Online (Sandbox Code Playgroud) 在https://askubuntu.com/a/119818/5032 qbi 中说:
将 noauto 添加到您的 fstab:
...
所以文件系统不会在启动时自动挂载。此外,您编写了一个脚本,该脚本基本上安装了您的 mhddfs 并在启动过程的某个后期添加它。
但是你怎么做呢?我的 mergefs 在启动时从不安装所有驱动器,大概是因为它们之前没有安装?这是 fstab 中的最后一个条目,如下所示(但有更多驱动器):
/mnt/EXT4_drive/drivepool:/mnt/NTFS_drive/drivepool:/mnt/anotherdrive/drivepool /mnt/drivepool fuse.mergerfs defaults,allow_other,minfreespace=100M 0 0
Run Code Online (Sandbox Code Playgroud)
当我df在启动后运行时,驱动器名称只显示包含了一些挂载点,以及所有挂载点应该具有的一小部分空间,所以如果它们没有准备好就不包含在内?我必须sudo umount /mnt/drivepool ; sudo mount /mnt/drivepool在启动后手动运行才能修复它并显示所有这些。
计算机也不止一次启动到“欢迎使用紧急模式!” 当其中一个驱动器在尝试安装时被自动 fscked 时/mnt/drivepool。这最近没有发生,也许是因为 mergefs 的变化让它忽略了未就绪的驱动器而不是因为它们而停止?
我怎么会自动挂载/mnt/drivepool尽快之后fstab中一切已成功安装并fscked?
我可以得到一些随机的 shell 脚本作为服务运行......这不是问题。鉴于我所做的一些 google-ing,我认为这与环境变量有关。所需的 rails 环境变量列表或作为服务运行的示例 rails 应用程序都会有所帮助。
我发现了这个:
https :
//serverfault.com/questions/327965/how-to-start-a-rake-task-using-upstart 这很有帮助,但它包含了 rvm。我喜欢 rvm,但我正在寻找一种方法来做到这一点,而不会增加这种额外的复杂性。虽然我可能被迫这样做...
我正在使用 Lubuntu 14.04 开发 VM,
我已经创建了一个脚本 a.sh,
#!bin/bash
echo "aaaa" >> a.txt
Run Code Online (Sandbox Code Playgroud)
我的 /etc/rc.local 文件如下:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
bash /home/sentinel/a.sh
echo "hey" >> …Run Code Online (Sandbox Code Playgroud) 有一些守护进程是我零使用的,并且希望阻止自动启动,其中包括 avahi、zeitgeist、telepathy、apport 等。不用说我不希望他们开始。可以在不卸载它们的情况下实现这一点吗(仍然存在依赖关系,我什至相信当我真正需要它们时可能会发生)?