From owner-freebsd-hackers@FreeBSD.ORG Wed Jul 14 11:49:08 2010 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3157106564A for ; Wed, 14 Jul 2010 11:49:08 +0000 (UTC) (envelope-from andrey.zonov@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 329E78FC08 for ; Wed, 14 Jul 2010 11:49:07 +0000 (UTC) Received: by bwz12 with SMTP id 12so4556811bwz.13 for ; Wed, 14 Jul 2010 04:49:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=p2Cf9K3TtILLCweYt5kQzps34Fv5UF1SLoMg+o0sRk4=; b=US/uRY9b3MH5CQUYaogOZUKRNSa4nQi0FufSFNy5U1oq0HXUZ+FAM6aoBW4T8LdQjm mB8VPnSZuUliadpbkUFt5Y3qE3TsfMMAMm9AQYEYJEC10E+uRy9Jc+O8L5B9lxJZtOTU 1hBKyYfWgLnJ/dYJeRf3nD3LI3BncomMMmevo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=rbiKMnHhdPmSS3JYt/MtsjmUD5FdjUwh4yffo94ah6VEU4yLT5Tpt5Vqb3zclrXRGN A1zXf7YZg9hKl+7J3YU720i4bWKABmczB2MVv262QXv28UM3d07holybmJEmrSW/00CU jLDCMysWuDh79F/QqQ8pFjj9g+F9ZMqfMJ0GY= MIME-Version: 1.0 Received: by 10.204.146.153 with SMTP id h25mr13205398bkv.86.1279108145350; Wed, 14 Jul 2010 04:49:05 -0700 (PDT) Received: by 10.204.61.145 with HTTP; Wed, 14 Jul 2010 04:49:05 -0700 (PDT) In-Reply-To: <4C2AE37C.5060000@gmail.com> References: <4C2AE37C.5060000@gmail.com> Date: Wed, 14 Jul 2010 15:49:05 +0400 Message-ID: From: Andrey Zonov To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: How change process flags from userland? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jul 2010 11:49:08 -0000 Hi, I resolve this problem (thanks Julian Elischer for his thoughts): === int fd; int cnt; off_t off; void *p; kvm_t *kd; struct kinfo_proc *kip; struct proc *p_mmap; kd = kvm_open(NULL, _PATH_MEM, NULL, O_RDONLY, NULL); kip = kvm_getprocs(kd, KERN_PROC_PID, pid, &cnt); fd = open(_PATH_KMEM, O_RDWR, 0); off = (off_t)((uintptr_t)kip->ki_paddr); p = mmap(0, sizeof(struct proc), PROT_READ | PROT_WRITE, MAP_SHARED, fd, off); p_mmap = (struct proc *)p; p_mmap->p_flag |= P_PROTECTED; ... === I wrote daemon [1] that set P_PROTECTED flag for applications. May be it useful for someone. [1] http://zonov.pp.ru/pprotectd/pprotectd.tbz -- Andrey Zonov 2010/6/30 Andrey Zonov : > Hi, > > I want to set P_PROTECTED flag for some daemons after it start, without > patching application and kernel. > It possible?