我有一个 bash 脚本,它启动一个 python3 脚本(让我们称之为startup.sh
),关键行:
nohup python3 -u <script> &
Run Code Online (Sandbox Code Playgroud)
当我ssh
直接进入并调用此脚本时,python脚本在我退出后继续在后台运行。但是,当我运行此命令时:
ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> "./startup.sh"
Run Code Online (Sandbox Code Playgroud)
该过程ssh
在完成运行后立即结束并关闭会话。
两者有什么区别?
编辑:python 脚本通过 Bottle 运行 Web 服务。
EDIT2:我也尝试创建一个调用startup.sh
和运行的初始化脚本ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> "sudo service start <servicename>"
,但得到了相同的行为。
EDIT3:也许是脚本中的其他内容。这是脚本的大部分内容:
chmod 700 ${key_loc}
echo "INFO: Syncing files."
rsync -azP -e "ssh -i ${key_loc} -o StrictHostKeyChecking=no" ${source_client_loc} ${remote_user}@${remote_hostname}:${destination_client_loc}
echo "INFO: Running startup script."
ssh -i ${key_loc} -o StrictHostKeyChecking=no ${remote_user}@${remote_hostname} "cd ${destination_client_loc}; …
Run Code Online (Sandbox Code Playgroud) 我目前使用的是 Ubuntu 14.04,但希望这适用于不同的发行版。
我想在关机期间阻止 DHCP 释放,并选择租约到期或在启动时更新 DHCP(如果需要)。
这可能吗?
编辑:我(曾经)有一个分布式应用程序,它根据域名解析做出不同的响应。如果机器在线但应用程序不可用,则其他机器上的应用程序将其理解为不可用。但是,如果 IP 已被释放(通过关闭),应用程序无法理解它我们不可用,而是挂起或抛出错误。
不幸的是,我不再有重现错误的设置,并且不记得它是挂起还是抛出错误,以及错误是什么。
它是基于格式化硬盘驱动器时确定的数字吗?
例如:
$ df -Ti /
Filesystem Type Inodes IUsed IFree IUse% Mounted on
/dev/dm-0 ext4 983040 95683 887357 10% /
Run Code Online (Sandbox Code Playgroud)
那个983040从哪里来?我们可以增加/减少它吗?在什么范围内?