步骤 1. 使用任何编辑器使用绑定命令创建脚本。例如:
sudo emacs bind_user_directories.sh
Run Code Online (Sandbox Code Playgroud)
内容:
#!/bin/bash
#NOTE: this file would be placed in /usr/local/sbin/ folder as bind_user_directories.sh
#alternatively it could be placed in /etc/init.d/ ... (I guess)
### BEGIN INIT INFO
# Provides: bind_user_directories
# Required-Start:
# Required-Stop:
# Should-Start: $named
# Default-Start: 0 2 3 4 5 6 (I guess...)
# Default-Stop: 1
# Short-Description: mount --bind for a user
# Description: runs mount --bind command for certain pre-defined directories for a specific user
### END INIT INFO
# What is this?
DESC="bind_user_directories"
# See how we were called.
case "$1" in
start)
log_progress_msg "bind directories for user..."
sudo mount --bind /source/path /target/path
log_progress_msg "done: bind directories for user"
;;
stop)
log_progress_msg "umount --bind directories for user..."
sudo umount /target/path
log_progress_msg "done: unbind directories for user"
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
#log_success_msg "Usage: bind_user_directories {start|stop|restart}"
log_success_msg "Usage: service bind_user_directories <start|stop|restart>"
exit 1
;;
esac
exit 0
Run Code Online (Sandbox Code Playgroud)
步骤2.保存bind_user_directories.sh并使其可执行:
chmod a+x bind_user_directories.sh
Run Code Online (Sandbox Code Playgroud)
步骤 3. 将其链接到合适的位置,例如 /usr/local/sbin:
sudo ln -s bind_user_directories.sh /usr/local/sbin/bind_user_directories.sh
Run Code Online (Sandbox Code Playgroud)
步骤 4. 创建 upstart 脚本:
sudo emacs /etc/init/bind_user_directories.conf
Run Code Online (Sandbox Code Playgroud)
内容:
description "runs mount --bind command for certain pre-defined directories for a specific user"
start on filesystem and net-device-up IFACE!=lo
stop on runlevel [!023456]
console output
respawn
respawn limit 10 5
exec /usr/local/sbin/bind_user_directories.sh start
Run Code Online (Sandbox Code Playgroud)
如果这对您有用,请告诉我。您可以在登录后检查系统日志中的消息。(我还没有测试过,之前也从未实现过类似的事情。)如果您改进了解决方案,请在这里分享您的最终解决方案。谢谢。
| 归档时间: |
|
| 查看次数: |
14497 次 |
| 最近记录: |