服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

以其他用户(不是root)的身份运行启动shell脚本,

我已经在Ubuntu 14.04上使用'user01'安装了RVM,并且user01可以按照预期启动我的rails应用程序。 然而,我想在系统启动后启动这个应用程序。 我正在尝试使用以下来实现这一点: /var/script/start.sh screen -d -m mongrel_rails start -e production -p 8088 /etc/rc.local (在退出0之前添加) sh './var/script/start.sh' 使用上面的更改,我的rails应用程序无法启动。 我可以证实这一点,因为没有活动的GNU屏幕会话(屏幕-d -m mongrel_rails …命令启动屏幕会话并分离,我应该能够看到与“screen -ls”命令的会话,但我不要,甚至切换到根后)。 我切换到根(sudo su),并尝试手动启动应用程序,但失败,如下所示: / usr / bin / env:ruby:没有这样的文件或目录 我认为RVM / Ruby已经被破坏了。 我通过运行'ruby -v'确认了这一点,它返回了一条确认应用程序未安装的消息。 看到有关安装的ruby版本的信息的user01不是这种情况。 我继续find一个解决办法,发现这个post ,build议在执行启动命令时切换到用户以下命令。 su user01 -c '/var/script/start.sh' 这也没有帮助,经过调查,我发现,当我su'user01'从root的ruby被打破了user01。 'ruby -v'也没有返回预期的信息。 手动testing后,我发现input“退出”返回到我的根,另一个“退出”返回到我的帐户user01(我用来login的帐户)和ruby正常工作。 任何人都可以提出一个方法来解决这个问题?

何时由操作系统分配的jvm堆

我们的一个SAP系统(PI ABAP + JAVA栈)正在给性能带来问题。 为机器configuration的整个64GB被占用(以及8个内核)。 每个人都怀疑java部分,但我认为不同。 java服务器节点重新启动时出现内存不足错误。 看看hprof文件,我发现它们只有1.2G(平均3个服务器节点)大小,当为服务器节点configuration3GB(-Xms和Xmx)的堆时。 这个观察导致了下面的疑问。 我已经读过,当Xms和Xmx设置为相同的值时,jvm在启动时被分配整个堆。 如果是这样的话,服务器节点从一开始就有3GB的堆。 如果是这样,为什么它不反映在hprof文件中,或者如果hprof在运行时只包含分配给对象的内存,那么这个大小显然意味着堆内存是空闲的(大于50%),所以OOM如何出错。 .. !! ?? 我也知道linux会做一些所谓的内存过度提交。 即内存实际上并没有被要求时,但实际使用时。 这是造成内存不足的例外吗? 就像JVM启动时一样,操作系统对它说,你已经分配了3GB的内存,但实际上是将其延迟到实际需要的时候。 当jvm实际上试图将内存分配给对象时,其他一些应用程序可能已经耗尽了内存。 这可能吗…?? 即使java节点有内存泄漏的问题,也不会局限于3GB的堆。 怎么能整个物理内存的64G ….? 还有一件事我观察到交换空间只有50%被使用。 任何光在这个…!

AWS RDS CLI:CreateDBSnapshot上的AccessDenied

我想使用AWS RDS命令行工具使用create-db-snapshot为我的数据库my-database create-db-snapshot 。 我在IAM中创build了一个特殊的备份angular色,允许我描述,复制和创build快照。 它看起来像这样(我用x代替了敏感的id): { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmtxxxxxxxxxxxxxx", "Effect": "Allow", "Action": [ "rds:CopyDBSnapshot", "rds:CreateDBSnapshot", "rds:DescribeDBSnapshots", "rds:DescribeEventCategories", "rds:DescribeEvents" ], "Resource": [ "arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:db:my-database" ] } ] } 使用aws configureconfigurationCLI工具并input这个用户的密钥后,我尝试通过执行这个命令来创build一个快照: aws rds create-db-snapshot \ –db-snapshot-identifier "my-database-backup-$(date +%d-%m-%Y-%Hh%Mm)" \ –db-instance-identifier "my-database" 这会导致一个错误消息说: 调用CreateDBSnapshot操作时发生客户端错误(AccessDenied):用户:arn:aws:iam :: xxxxxxxxxxxxxx:user / automated-tasks无权执行:资源上的rds:CreateDBSnapshot:arn:aws:rds:eu-west -1:XXXXXXXXXXXXXX:快照:我的数据库备份,24-11-2014-11h07m 我认为这很奇怪,因为它说访问被拒绝的资源与我指定的–db-snapshot-identifier参数的名称一样,与–db-instance-identifier参数相同。 如果我有足够的权限来创build应用于实例的快照,那么我是否应该不具有创build该快照的权限? 无论如何,我尝试将策略中的资源更改为RDS中的所有内容: "Resource": [ […]